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

#11 Carlos
07/03/2005 - 19:35 | Informe spam
Listo Funciono, le agregue la fecha para filtrar mas los datos
y me realiza la suma sin problemas, muchas gracias


"Maxi" wrote:

Hola, ponelo asi

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


Salu2
Maxi


"Carlos" escribió en el mensaje
news:
> ok la consulta que me diste y corri fue esta:
>
> SELECT Sum(Transaction) AS Total, StandNumber
> FROM SummaryShifts where (((StandNumber)=2) AND((SummaryShifts.StartTime)
> Between '07:00' And
> '18:00'))
> GROUP BY StandNumber, CONVERT(VARCHAR(10),SummaryShifts.StartTime,108)
>
> Y el Resultado fue este:
>
> Total StandNumber
> 5 2
> 39 2
> 1 2
> 3 2
> 0 2
> 0 2
> 46 2
> 17 2
> 55 2
> 1 2
> 0 2
> 117 2
> 35 2
> 119 2
> 67 2
> 2 2
> 192 2
> 46 2
> 0 2
> 25 2
> 8 2
>
> "Maxi" wrote:
>
>> Carlos, podes escribir textualmente como has puesto el script que te
>> pase?
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Carlos" escribió en el mensaje
>> news:
>> > ok el script de Maxi me arroja lo 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
>> >
>> > El Script de Tinoco me arroja lo siguiente:
>> >
>> > Column 'StartTime' is invalid in the HAVING clause because it is not
>> > contained in either an aggregate function or the GROUP BY clause.
>> >
>> > que puede estar pasando???
>> >
>> > "Maxi" wrote:
>> >
>> >> Hola, quizas algo asi te ayude
>> >>
>> >> SELECT Sum(Transaction) AS Total, StandNumber
>> >> FROM SummaryShifts where (((StandNumber)=2) AND
>> >> ((SummaryShifts.StartTime)
>> >> Between '07:00' And
>> >> '18:00'))
>> >> GROUP BY StandNumber,
>> >> CONVERT(VARCHAR(10),SummaryShifts.StartTime,108)
>> >>
>> >>
>> >>
>> >>
>> >> Salu2
>> >> Maxi
>> >>
>> >>
>> >> "Carlos" escribió en el mensaje
>> >> news:
>> >> > 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
#12 Maxi
07/03/2005 - 19:47 | Informe spam
:-DD, por nada


Salu2
Maxi


"Carlos" escribió en el mensaje
news:
Listo Funciono, le agregue la fecha para filtrar mas los datos
y me realiza la suma sin problemas, muchas gracias


"Maxi" wrote:

Hola, ponelo asi

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


Salu2
Maxi


"Carlos" escribió en el mensaje
news:
> ok la consulta que me diste y corri fue esta:
>
> SELECT Sum(Transaction) AS Total, StandNumber
> FROM SummaryShifts where (((StandNumber)=2)
> AND((SummaryShifts.StartTime)
> Between '07:00' And
> '18:00'))
> GROUP BY StandNumber, CONVERT(VARCHAR(10),SummaryShifts.StartTime,108)
>
> Y el Resultado fue este:
>
> Total StandNumber
> 5 2
> 39 2
> 1 2
> 3 2
> 0 2
> 0 2
> 46 2
> 17 2
> 55 2
> 1 2
> 0 2
> 117 2
> 35 2
> 119 2
> 67 2
> 2 2
> 192 2
> 46 2
> 0 2
> 25 2
> 8 2
>
> "Maxi" wrote:
>
>> Carlos, podes escribir textualmente como has puesto el script que te
>> pase?
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Carlos" escribió en el mensaje
>> news:
>> > ok el script de Maxi me arroja lo 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
>> >
>> > El Script de Tinoco me arroja lo siguiente:
>> >
>> > Column 'StartTime' is invalid in the HAVING clause because it is not
>> > contained in either an aggregate function or the GROUP BY clause.
>> >
>> > que puede estar pasando???
>> >
>> > "Maxi" wrote:
>> >
>> >> Hola, quizas algo asi te ayude
>> >>
>> >> SELECT Sum(Transaction) AS Total, StandNumber
>> >> FROM SummaryShifts where (((StandNumber)=2) AND
>> >> ((SummaryShifts.StartTime)
>> >> Between '07:00' And
>> >> '18:00'))
>> >> GROUP BY StandNumber,
>> >> CONVERT(VARCHAR(10),SummaryShifts.StartTime,108)
>> >>
>> >>
>> >>
>> >>
>> >> Salu2
>> >> Maxi
>> >>
>> >>
>> >> "Carlos" escribió en el mensaje
>> >> news:
>> >> > 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
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >>
>> >>
>> >>
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida