Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-06-2004
Carlex Carlex is offline
Miembro
 
Registrado: feb 2004
Ubicación: Bolivia
Posts: 88
Poder: 21
Carlex Va por buen camino
Selecionar y agrupar segun el Mes

Muy buenas, mi consultita es estoy trabajando con varias tablas pero solo de 2 debo sacar la siguiente informacion, de la tabla factura se saca la fecha y de la tabla Tipo, el tipo de compra realizada, lo que requiero es que por cada mes cuente de cada tipo cuantas se vendieron, el query que estoy haceindo es algo asi:

SELECT T.S_Tipo, F.F_Fecha_V, COUNT(T.S_Tipo) AS Total
FROM T_Tipo AS T, T_Prenda AS P, T_Venta AS V, T_Factura AS F
WHERE T.Cod_Tipo=P.Cod_Tipo And P.S_Modelo=V.S_Modelo And V.N_Cod_Venta=F.N_Cod_Venta
GROUP BY F.F_Fecha_V, T.S_Tipo;

Que me da como resultado los totales por tipo de lada dia, pero requiero que me de por mes, lo optimo seria un resultado separado por mes, asi: Enero: Tipo1=13, Tipo2=2, Tipo3=5; Febrero.....etc

Como puedo lograr esto? o solo se puede agrupar por mes, segun el campo de fecha?, esto me seria de gran ayuda para otro query que debe ser por dia de la semana tambien, muchas gracias
Responder Con Cita
  #2  
Antiguo 28-06-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Sería bueno saber en que motor quieres ejecutar esta consulta, por ejemplo en Oracle, puedes agrupar por:
Código SQL [-]
SELECT COUNT(*), TO_CHAR(FECHA, 'MM')
FROM TABLA
GROUP BY TO_CHAR(FECHA, 'MM')

En otros motores existen funciones como Month para poder extraer el mes de una fecha.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 29-06-2004
Carlex Carlex is offline
Miembro
 
Registrado: feb 2004
Ubicación: Bolivia
Posts: 88
Poder: 21
Carlex Va por buen camino
Agrupar por mes

Hola, gracias por la respuesta me ayudo bastante pero aqui la duda, ya lo tengo agrupado por mes, pero en los resultados como puedo obtener a que mes pertenecen estos resultados?, esto puedo hacerlo en el query o dentro de mi aplicacion? Gracias
Responder Con Cita
  #4  
Antiguo 29-06-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Poder: 20
ruina Va por buen camino
supongo que podrias usar la clausula Having:

Código SQL [-]
SELECT COUNT(*), TO_CHAR(FECHA, 'MM')
FROM TABLA
GROUP BY TO_CHAR(FECHA, 'MM')
HAVING TO_CHAR(FECHA, 'MM') = '12'
Responder Con Cita
  #5  
Antiguo 29-06-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por Carlex
pero en los resultados como puedo obtener a que mes pertenecen estos resultados?
No entiendo a que quieres llegar, pero estas agrupando por mes, y cada registro pertenece al total de cada mes, el segundo campo indica al mes de referencia

Cita:
Empezado por Carlex
esto puedo hacerlo en el query o dentro de mi aplicacion? Gracias
Si

Cita:
Empezado por ruina
supongo que podrias usar la clausula Having
Me parece medio un exeso utilizar un having para eso, el having lo utilizaría solo para las funciones de grupo, en este caso, el resultado es el mismo que:

Código SQL [-]
SELECT COUNT(*), TO_CHAR(FECHA, 'MM')
FROM TABLA
WHERE TO_CHAR(FECHA, 'MM') = '12'

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 08-07-2004
marcost marcost is offline
Registrado
 
Registrado: abr 2004
Posts: 9
Poder: 0
marcost Va por buen camino
Código:
SELECT T.S_Tipo, datepart (month, F.F_Fecha_V), COUNT(*) AS Total
FROM T_Tipo AS T  
JOIN T_Prenda AS P ON P.Cod_Tipo=T.Cod_Tipo 
JOIN T_Venta AS V ON V.S_Modelo=P.S_Modelo 
JOIN T_Factura AS F on F.N_Cod_Venta=V.N_Cod_Venta
GROUP BY datepart (month, F.F_Fecha_V), T.S_Tipo;
esto deberia funcionar en SQL Server, como decia delphi.com.ar, deberias decirnos que motor estás usando para que tengamos una respuesta mas precisa

Suerte
Responder Con Cita
  #7  
Antiguo 09-07-2004
Carlex Carlex is offline
Miembro
 
Registrado: feb 2004
Ubicación: Bolivia
Posts: 88
Poder: 21
Carlex Va por buen camino
Talking Agrupar segun Mes

Bueno priemro que nada muchas gracias por las respuestas, recien pude verlas y las probare, el motor que estoy usando es access y con la 1ra respuesta resolvi casi el problema salvo que no obtenia el resultado de a cuerdo al mes, es decir, que obtenia:

Prenda2 5
Prenda1 1
Prenda4 6
Prenda2 2

Pero no el mes al que corresponden, alli la pregunta de como puedo a este resultado agregar el mes al que corresponde. asi obtener

Prenda2 5 Mayo
Prenda1 1 Mayo
Prenda4 6 Mayo
Prenda2 2 Junio, etc

Muchas gracias
Responder Con Cita
  #8  
Antiguo 10-07-2004
marcost marcost is offline
Registrado
 
Registrado: abr 2004
Posts: 9
Poder: 0
marcost Va por buen camino
no se si access tenga la opcion de mostrarte el nombre del mes, pero una posible solución que es independiente del motor (y del idioma) es que añadas un campo calculado a la consulta

Suerte
Responder Con Cita
  #9  
Antiguo 11-07-2004
Carlex Carlex is offline
Miembro
 
Registrado: feb 2004
Ubicación: Bolivia
Posts: 88
Poder: 21
Carlex Va por buen camino
Muchas gracias marcost, la unica variante en access es que en vez de month es "m", despues todo funciona bien.
Responder Con Cita
  #10  
Antiguo 12-07-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por marcost
..no se si access tenga la opcion de mostrarte el nombre del mes...
Si: FORMAT(Now(), "MMMM")

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:41:12.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi