Sumar Columnas SQL??

04/03/2005 - 14:35 por Carlos | Informe spam
Buenas Tardes,

Necesito sumar una columna de datos de tipo int(4), pero requiero utilizar
una columna de tipo datetime(8) como referencia para realizar la suma, es
decir, que sume los valores de la columna de datos tipo int(4) que esten el
rango de hora de la columna datetime(8)

Si estuviese utilizando otra columna como referencia como por ejemplo una
columna con un valor fijo la suma se realiza sin problemas pero cuando
utilizo la columna datetime(8)con un rango de hora para realizar la suma el
resultado son varias filas de datos cuando deberian ser solamente una.

Estoy Utilizando la siguiente consulta:

SELECT Sum(Transaction) AS Total, StandNumber, StartTime
FROM SummaryShifts
GROUP BY StandNumber, StartTime
HAVING (((SummaryShifts.StandNumber)=2) AND ((SummaryShifts.StartTime)
Between #1/1/1900 7:0:0# And #1/1/1900 18:0:0#));

Creo que necesito realizar la conversion de la columna, pero no se como, de
antemano muchas gracias por la ayuda

Preguntas similare

Leer las respuestas

#1 Maxi
04/03/2005 - 16:01 | Informe spam
Hola, si solo queres ver la fecha debes convertirlo por ej asi

CONVERT(VARCHAR(10),FECHA,108), esto en el group by claro ;)


Salu2
Maxi


"Carlos" escribió en el mensaje
news:
Buenas Tardes,

Necesito sumar una columna de datos de tipo int(4), pero requiero utilizar
una columna de tipo datetime(8) como referencia para realizar la suma, es
decir, que sume los valores de la columna de datos tipo int(4) que esten
el
rango de hora de la columna datetime(8)

Si estuviese utilizando otra columna como referencia como por ejemplo una
columna con un valor fijo la suma se realiza sin problemas pero cuando
utilizo la columna datetime(8)con un rango de hora para realizar la suma
el
resultado son varias filas de datos cuando deberian ser solamente una.

Estoy Utilizando la siguiente consulta:

SELECT Sum(Transaction) AS Total, StandNumber, StartTime
FROM SummaryShifts
GROUP BY StandNumber, StartTime
HAVING (((SummaryShifts.StandNumber)=2) AND ((SummaryShifts.StartTime)
Between #1/1/1900 7:0:0# And #1/1/1900 18:0:0#));

Creo que necesito realizar la conversion de la columna, pero no se como,
de
antemano muchas gracias por la ayuda



Respuesta Responder a este mensaje
#2 Carlos
04/03/2005 - 16:37 | Informe spam
Me sigue arrojando 'n' cantidad de columnas y no suma la columna que deseo,
la estoy colocando asi:

SELECT Sum(Transaction) AS Total, StandNumber,StartTime
FROM SummaryShifts
GROUP BY StandNumber, StartTime,
CONVERT(VARCHAR(10),SummaryShifts.StartTime,108)
HAVING (((StandNumber)=2) AND ((SummaryShifts.StartTime) Between '07:00' And
'18:00'))

El resultado es el siguiente:

Total StandNumber StartTime
0 2 1900-01-01 08:06:51.000
0 2 1900-01-01 08:20:05.000
0 2 1900-01-01 08:26:40.000
0 2 1900-01-01 08:34:02.000
43 2 1900-01-01 08:34:22.000
68 2 1900-01-01 08:36:58.000
2 2 1900-01-01 08:45:28.000
28 2 1900-01-01 08:46:15.000
59 2 1900-01-01 08:48:08.000
30 2 1900-01-01 08:49:31.000
0 2 1900-01-01 08:51:02.000
126 2 1900-01-01 08:51:42.000
0 2 1900-01-01 09:01:43.000
0 2 1900-01-01 09:02:02.000
66 2 1900-01-01 09:04:23.000
66 2 1900-01-01 09:04:52.000
0 2 1900-01-01 09:07:12.000
0 2 1900-01-01 09:08:48.000
127 2 1900-01-01 09:15:01.000
30 2 1900-01-01 09:17:08.000


El resultado deberia ser la suma total de la primera columna
deberia quedar algo asi mas o menos

Total StandNumber StartTime
230 2 1900-01-01 08:06:51.000






"Maxi" wrote:

Hola, si solo queres ver la fecha debes convertirlo por ej asi

CONVERT(VARCHAR(10),FECHA,108), esto en el group by claro ;)


Salu2
Maxi


"Carlos" escribió en el mensaje
news:
> Buenas Tardes,
>
> Necesito sumar una columna de datos de tipo int(4), pero requiero utilizar
> una columna de tipo datetime(8) como referencia para realizar la suma, es
> decir, que sume los valores de la columna de datos tipo int(4) que esten
> el
> rango de hora de la columna datetime(8)
>
> Si estuviese utilizando otra columna como referencia como por ejemplo una
> columna con un valor fijo la suma se realiza sin problemas pero cuando
> utilizo la columna datetime(8)con un rango de hora para realizar la suma
> el
> resultado son varias filas de datos cuando deberian ser solamente una.
>
> Estoy Utilizando la siguiente consulta:
>
> SELECT Sum(Transaction) AS Total, StandNumber, StartTime
> FROM SummaryShifts
> GROUP BY StandNumber, StartTime
> HAVING (((SummaryShifts.StandNumber)=2) AND ((SummaryShifts.StartTime)
> Between #1/1/1900 7:0:0# And #1/1/1900 18:0:0#));
>
> Creo que necesito realizar la conversion de la columna, pero no se como,
> de
> antemano muchas gracias por la ayuda
>
>
>



Respuesta Responder a este mensaje
#3 Maxi
04/03/2005 - 16:46 | Informe spam
Hola a ver, con que criterio dices eso? ya que hay distintos startTime con
lo cual pasa lo correcto, porque indicas que el starttime solo deberia ser
08:06:51.000



Salu2
Maxi


"Carlos" escribió en el mensaje
news:
Me sigue arrojando 'n' cantidad de columnas y no suma la columna que
deseo,
la estoy colocando asi:

SELECT Sum(Transaction) AS Total, StandNumber,StartTime
FROM SummaryShifts
GROUP BY StandNumber, StartTime,
CONVERT(VARCHAR(10),SummaryShifts.StartTime,108)
HAVING (((StandNumber)=2) AND ((SummaryShifts.StartTime) Between '07:00'
And
'18:00'))

El resultado es el siguiente:

Total StandNumber StartTime
0 2 1900-01-01 08:06:51.000
0 2 1900-01-01 08:20:05.000
0 2 1900-01-01 08:26:40.000
0 2 1900-01-01 08:34:02.000
43 2 1900-01-01 08:34:22.000
68 2 1900-01-01 08:36:58.000
2 2 1900-01-01 08:45:28.000
28 2 1900-01-01 08:46:15.000
59 2 1900-01-01 08:48:08.000
30 2 1900-01-01 08:49:31.000
0 2 1900-01-01 08:51:02.000
126 2 1900-01-01 08:51:42.000
0 2 1900-01-01 09:01:43.000
0 2 1900-01-01 09:02:02.000
66 2 1900-01-01 09:04:23.000
66 2 1900-01-01 09:04:52.000
0 2 1900-01-01 09:07:12.000
0 2 1900-01-01 09:08:48.000
127 2 1900-01-01 09:15:01.000
30 2 1900-01-01 09:17:08.000


El resultado deberia ser la suma total de la primera columna
deberia quedar algo asi mas o menos

Total StandNumber StartTime
230 2 1900-01-01 08:06:51.000






"Maxi" wrote:

Hola, si solo queres ver la fecha debes convertirlo por ej asi

CONVERT(VARCHAR(10),FECHA,108), esto en el group by claro ;)


Salu2
Maxi


"Carlos" escribió en el mensaje
news:
> Buenas Tardes,
>
> Necesito sumar una columna de datos de tipo int(4), pero requiero
> utilizar
> una columna de tipo datetime(8) como referencia para realizar la suma,
> es
> decir, que sume los valores de la columna de datos tipo int(4) que
> esten
> el
> rango de hora de la columna datetime(8)
>
> Si estuviese utilizando otra columna como referencia como por ejemplo
> una
> columna con un valor fijo la suma se realiza sin problemas pero cuando
> utilizo la columna datetime(8)con un rango de hora para realizar la
> suma
> el
> resultado son varias filas de datos cuando deberian ser solamente una.
>
> Estoy Utilizando la siguiente consulta:
>
> SELECT Sum(Transaction) AS Total, StandNumber, StartTime
> FROM SummaryShifts
> GROUP BY StandNumber, StartTime
> HAVING (((SummaryShifts.StandNumber)=2) AND ((SummaryShifts.StartTime)
> Between #1/1/1900 7:0:0# And #1/1/1900 18:0:0#));
>
> Creo que necesito realizar la conversion de la columna, pero no se
> como,
> de
> antemano muchas gracias por la ayuda
>
>
>



Respuesta Responder a este mensaje
#4 Tinoco
04/03/2005 - 16:57 | Informe spam
Hola Carlos,

Creo que la respuesta de la consulta esta bien. Lo que necesitas es agrupar
por fecha(sin incluir las horas), algo como [Cast o Convert]:

SELECT Sum(Transaction) AS Total,
StandNumber,
Cast(StartTime as varchar(10))
FROM SummaryShifts
GROUP BY StandNumber,
Cast(StartTime as varchar(10)),
CONVERT(VARCHAR(10),SummaryShifts.StartTime,108)
HAVING (((StandNumber)=2) AND ((SummaryShifts.StartTime) Between '07:00' And
'18:00'))

Hermilson Tinoco
Colombia


"Carlos" wrote:

Me sigue arrojando 'n' cantidad de columnas y no suma la columna que deseo,
la estoy colocando asi:

SELECT Sum(Transaction) AS Total, StandNumber,StartTime
FROM SummaryShifts
GROUP BY StandNumber, StartTime,
CONVERT(VARCHAR(10),SummaryShifts.StartTime,108)
HAVING (((StandNumber)=2) AND ((SummaryShifts.StartTime) Between '07:00' And
'18:00'))

El resultado es el siguiente:

Total StandNumber StartTime
0 2 1900-01-01 08:06:51.000
0 2 1900-01-01 08:20:05.000
0 2 1900-01-01 08:26:40.000
0 2 1900-01-01 08:34:02.000
43 2 1900-01-01 08:34:22.000
68 2 1900-01-01 08:36:58.000
2 2 1900-01-01 08:45:28.000
28 2 1900-01-01 08:46:15.000
59 2 1900-01-01 08:48:08.000
30 2 1900-01-01 08:49:31.000
0 2 1900-01-01 08:51:02.000
126 2 1900-01-01 08:51:42.000
0 2 1900-01-01 09:01:43.000
0 2 1900-01-01 09:02:02.000
66 2 1900-01-01 09:04:23.000
66 2 1900-01-01 09:04:52.000
0 2 1900-01-01 09:07:12.000
0 2 1900-01-01 09:08:48.000
127 2 1900-01-01 09:15:01.000
30 2 1900-01-01 09:17:08.000


El resultado deberia ser la suma total de la primera columna
deberia quedar algo asi mas o menos

Total StandNumber StartTime
230 2 1900-01-01 08:06:51.000






"Maxi" wrote:

> Hola, si solo queres ver la fecha debes convertirlo por ej asi
>
> CONVERT(VARCHAR(10),FECHA,108), esto en el group by claro ;)
>
>
> Salu2
> Maxi
>
>
> "Carlos" escribió en el mensaje
> news:
> > Buenas Tardes,
> >
> > Necesito sumar una columna de datos de tipo int(4), pero requiero utilizar
> > una columna de tipo datetime(8) como referencia para realizar la suma, es
> > decir, que sume los valores de la columna de datos tipo int(4) que esten
> > el
> > rango de hora de la columna datetime(8)
> >
> > Si estuviese utilizando otra columna como referencia como por ejemplo una
> > columna con un valor fijo la suma se realiza sin problemas pero cuando
> > utilizo la columna datetime(8)con un rango de hora para realizar la suma
> > el
> > resultado son varias filas de datos cuando deberian ser solamente una.
> >
> > Estoy Utilizando la siguiente consulta:
> >
> > SELECT Sum(Transaction) AS Total, StandNumber, StartTime
> > FROM SummaryShifts
> > GROUP BY StandNumber, StartTime
> > HAVING (((SummaryShifts.StandNumber)=2) AND ((SummaryShifts.StartTime)
> > Between #1/1/1900 7:0:0# And #1/1/1900 18:0:0#));
> >
> > Creo que necesito realizar la conversion de la columna, pero no se como,
> > de
> > antemano muchas gracias por la ayuda
> >
> >
> >
>
>
>
Respuesta Responder a este mensaje
#5 Carlos
04/03/2005 - 17:19 | Informe spam
ok, necesito sumar los datos de una columna que esten en el rango de una hora
especifica, por ejemplo quiero saber cuantas transacciones hay entre las 7:00
am y las 6:00 pm.

Es decir la consulta deberia arrojar la suma de las transacciones que se
hicieron entre las 7:00 am y 6:00 pm, no una cantidad x de filas no sumadas
(o por lo menos eso es lo que veo), las transaciones se almacenan en una
columna y la hora(starttime) en otra.

Me gustaria poder obtener total de transacciones que hay en un rango de
horas definido,

como puedo hacerlo?? o que estoy haciendo mal en la consulta anterior

SELECT Sum(Transaction) AS Total, StandNumber,StartTime
FROM SummaryShifts
GROUP BY StandNumber, StartTime,
CONVERT(VARCHAR(10),SummaryShifts.StartTime,108)
HAVING (((StandNumber)=2) AND ((SummaryShifts.StartTime) Between '07:00' And
'18:00'))

Gracias por la ayuda, saludos



P.D, 'starttime' es el nombre de la columna

"Maxi" wrote:

Hola a ver, con que criterio dices eso? ya que hay distintos startTime con
lo cual pasa lo correcto, porque indicas que el starttime solo deberia ser
08:06:51.000



Salu2
Maxi


"Carlos" escribió en el mensaje
news:
> Me sigue arrojando 'n' cantidad de columnas y no suma la columna que
> deseo,
> la estoy colocando asi:
>
> SELECT Sum(Transaction) AS Total, StandNumber,StartTime
> FROM SummaryShifts
> GROUP BY StandNumber, StartTime,
> CONVERT(VARCHAR(10),SummaryShifts.StartTime,108)
> HAVING (((StandNumber)=2) AND ((SummaryShifts.StartTime) Between '07:00'
> And
> '18:00'))
>
> El resultado es el siguiente:
>
> Total StandNumber StartTime
> 0 2 1900-01-01 08:06:51.000
> 0 2 1900-01-01 08:20:05.000
> 0 2 1900-01-01 08:26:40.000
> 0 2 1900-01-01 08:34:02.000
> 43 2 1900-01-01 08:34:22.000
> 68 2 1900-01-01 08:36:58.000
> 2 2 1900-01-01 08:45:28.000
> 28 2 1900-01-01 08:46:15.000
> 59 2 1900-01-01 08:48:08.000
> 30 2 1900-01-01 08:49:31.000
> 0 2 1900-01-01 08:51:02.000
> 126 2 1900-01-01 08:51:42.000
> 0 2 1900-01-01 09:01:43.000
> 0 2 1900-01-01 09:02:02.000
> 66 2 1900-01-01 09:04:23.000
> 66 2 1900-01-01 09:04:52.000
> 0 2 1900-01-01 09:07:12.000
> 0 2 1900-01-01 09:08:48.000
> 127 2 1900-01-01 09:15:01.000
> 30 2 1900-01-01 09:17:08.000
>
>
> El resultado deberia ser la suma total de la primera columna
> deberia quedar algo asi mas o menos
>
> Total StandNumber StartTime
> 230 2 1900-01-01 08:06:51.000
>
>
>
>
>
>
> "Maxi" wrote:
>
>> Hola, si solo queres ver la fecha debes convertirlo por ej asi
>>
>> CONVERT(VARCHAR(10),FECHA,108), esto en el group by claro ;)
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Carlos" escribió en el mensaje
>> news:
>> > Buenas Tardes,
>> >
>> > Necesito sumar una columna de datos de tipo int(4), pero requiero
>> > utilizar
>> > una columna de tipo datetime(8) como referencia para realizar la suma,
>> > es
>> > decir, que sume los valores de la columna de datos tipo int(4) que
>> > esten
>> > el
>> > rango de hora de la columna datetime(8)
>> >
>> > Si estuviese utilizando otra columna como referencia como por ejemplo
>> > una
>> > columna con un valor fijo la suma se realiza sin problemas pero cuando
>> > utilizo la columna datetime(8)con un rango de hora para realizar la
>> > suma
>> > el
>> > resultado son varias filas de datos cuando deberian ser solamente una.
>> >
>> > Estoy Utilizando la siguiente consulta:
>> >
>> > SELECT Sum(Transaction) AS Total, StandNumber, StartTime
>> > FROM SummaryShifts
>> > GROUP BY StandNumber, StartTime
>> > HAVING (((SummaryShifts.StandNumber)=2) AND ((SummaryShifts.StartTime)
>> > Between #1/1/1900 7:0:0# And #1/1/1900 18:0:0#));
>> >
>> > Creo que necesito realizar la conversion de la columna, pero no se
>> > como,
>> > de
>> > antemano muchas gracias por la ayuda
>> >
>> >
>> >
>>
>>
>>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida