GROUP BY Fecha sin hora!!!

13/12/2006 - 18:20 por Rodrilobo | Informe spam
Hola amigos... Soy nuevo en el asunto de programacion y necesito un
poco de ayuda... Mi problema es que tengo una tabla "MFacturas" donde
estan las facturas procesadas y necesito hacer un resumen mensual de
esas ventas.

MFacturas tiene los campos: IdFact, FechaFact, Monto, entre otros que
no vienen al caso y necesito hacer una consulta que me genere un
informe algo asi:

Fecha | Monto | Factura Inicial| Factura Final|
10/12/2006 | 400,000.00 | 0000125 | 0000300 |
11/12/2006 | 500,000.00 | 0000301 | 0000423 |

he logrado hacerlo con esta consulta sql:

SELECT FechaFact AS Fecha, SUM(Monto) AS Monto, MIN(IdFact) AS
'Factura Inicial', MAX(IdFact) AS 'Factura Final'
FROM MFacturas
GROUP BY FecFact

el problema que tengo es que el campo FecFact me guarda la hora y por
tanto no resume las ventas por dia sino que me genera el siguiente
resultado ejemplo:

Fecha | Monto | Factura Inicial| Factura Final|
10/12/2006 12:00:00 a.m | 400,000.00 | 0000125 | 0000300 |
11/12/2006 11:46:05 a.m | 25,000.00 | 0000301 | 0000301 |
11/12/2006 01:30:08 p.m | 50,000.00 | 0000302 | 0000302 |
11/12/2006 01:35:05 p.m | 45,000.00 | 0000303 | 0000303 |

Final mente mi pregunta es ¿Como agrupo los campos que sean de una
fecha sin importar que tenga hora distinta?

Muchas gracias de antemano!!!!!

Rodrigo Lobo Alvarado - Costa Rica

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
13/12/2006 - 18:35 | Informe spam
Hola,

Puedes extraer la fecha sin hora: cast(cast(FechaFact as int) as datetime)
as Fecha

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Rodrilobo" escribió en el mensaje
news:
Hola amigos... Soy nuevo en el asunto de programacion y necesito un
poco de ayuda... Mi problema es que tengo una tabla "MFacturas" donde
estan las facturas procesadas y necesito hacer un resumen mensual de
esas ventas.

MFacturas tiene los campos: IdFact, FechaFact, Monto, entre otros que
no vienen al caso y necesito hacer una consulta que me genere un
informe algo asi:

Fecha | Monto | Factura Inicial| Factura Final|
10/12/2006 | 400,000.00 | 0000125 | 0000300 |
11/12/2006 | 500,000.00 | 0000301 | 0000423 |

he logrado hacerlo con esta consulta sql:

SELECT FechaFact AS Fecha, SUM(Monto) AS Monto, MIN(IdFact) AS
'Factura Inicial', MAX(IdFact) AS 'Factura Final'
FROM MFacturas
GROUP BY FecFact

el problema que tengo es que el campo FecFact me guarda la hora y por
tanto no resume las ventas por dia sino que me genera el siguiente
resultado ejemplo:

Fecha | Monto | Factura Inicial| Factura Final|
10/12/2006 12:00:00 a.m | 400,000.00 | 0000125 | 0000300 |
11/12/2006 11:46:05 a.m | 25,000.00 | 0000301 | 0000301 |
11/12/2006 01:30:08 p.m | 50,000.00 | 0000302 | 0000302 |
11/12/2006 01:35:05 p.m | 45,000.00 | 0000303 | 0000303 |

Final mente mi pregunta es ¿Como agrupo los campos que sean de una
fecha sin importar que tenga hora distinta?

Muchas gracias de antemano!!!!!

Rodrigo Lobo Alvarado - Costa Rica
Respuesta Responder a este mensaje
#2 Rodrilobo
13/12/2006 - 21:45 | Informe spam
Salvador.. He intentado lo que me dijiste de la siguiente forma:ç

SELECT FecFact AS Fecha, SUM(Monto), MIN(IdFact) AS FacIni,
MAX(IdFact) AS FacFin
FROM MFacturas
GROUP BY CAST(CAST(FecFact AS int) AS datetime)

y me ha dado el siguiente error:

Colum 'FecFact' is invalid in the select list because it is not
contained in either an aggregate function or the GROUP BY clause.


Qe paso????



-

Salvador Ramos ha escrito:

Hola,

Puedes extraer la fecha sin hora: cast(cast(FechaFact as int) as datetime)
as Fecha

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)

Respuesta Responder a este mensaje
#3 Rodrilobo
13/12/2006 - 21:58 | Informe spam
Ya lo logre

SELECT CAST(CAST(FecFact AS int) AS datetime) AS Fecha, SUM(Monto),
MIN(IdFact) AS FacIni,
MAX(IdFact) AS FacFin
FROM MFacturas
GROUP BY CAST(CAST(FecFact AS int) AS datetime)

era cuestion de poner el cast en el select y el group by...

Gracias Salvador
Respuesta Responder a este mensaje
#4 Salvador Ramos
14/12/2006 - 09:28 | Informe spam
Efectivamente,

Ya que en las columnas del select sólo pueden ir funciones de agregación
(sum, min, max, ...) y columnas que aparezcan en el group by.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Rodrilobo" escribió en el mensaje
news:

Ya lo logre

SELECT CAST(CAST(FecFact AS int) AS datetime) AS Fecha, SUM(Monto),
MIN(IdFact) AS FacIni,
MAX(IdFact) AS FacFin
FROM MFacturas
GROUP BY CAST(CAST(FecFact AS int) AS datetime)

era cuestion de poner el cast en el select y el group by...

Gracias Salvador

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