Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-04-2008
zajoma zajoma is offline
Miembro
 
Registrado: feb 2006
Posts: 32
Poder: 0
zajoma Va por buen camino
problemas con union y group

Hola a todos:

Trabajo en Delphi 7 y tablas paradox. Estoy intentando hacer la consulta que os describo más abajo. El problema es que si agrupo la consulta falla. La pregunta es cómo puedo agrupar el número de paquetes que se produce en cada turno por la fecha de producción. Os doy las gracias por adelantado.

un Saludo.
Código SQL [-]
 
select FechaProd, Count(*) as Turno1, 0 as Turno2, 0 as Turno3 from paquetes
where ( HoraProd between '06:00' and '14:15' )
group by FechaProd
union
select FechaProd, 0 as Turno1, Count(*) as Turno2, 0 as Turno3 from paquetes
where ( HoraProd between '14:15' and '22:30' )
group by FechaProd
union
select FechaProd, 0 as Turno1, 0 as Turno2, Count(*) as Turno3 from paquetes
where ( HoraProd >= '22:30' ) and ( HoraProd < '06:00' )
group by FechaProd

Última edición por marcoszorrilla fecha: 21-04-2008 a las 11:09:46. Razón: Etiquetas SQl [sql] [/Sql]
Responder Con Cita
  #2  
Antiguo 21-04-2008
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
¿Falla? ¿Qué falla? ¿Qué te dice exactamente? ¿O es que no da los resultados correctamente?
Responder Con Cita
  #3  
Antiguo 21-04-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
Hola
Yo tenia unos problemas semejantes y el problema era el tipo de dato, cuando se utiliza union se debe tener un mismo tipo de dato para cada una de las columnas
si tu error era time mismash in expresion esto te ayudara, aunque el tipo de dato podria ser INT u el que tu prefieras

Código SQL [-]
select FechaProd, CAST(Count(*)  AS NUMERIC(12,2) as Turno1, CAST(0  AS NUMERIC(12,2) as Turno2, CAST(0  AS NUMERIC(12,2) as Turno3 from paquetes
where ( HoraProd between '06:00' and '14:15' )
group by FechaProd
union
select FechaProd, CAST(0  AS NUMERIC(12,2) as Turno1, CAST(Count(*)  AS NUMERIC(12,2) as Turno2, cast(0  AS NUMERIC(12,2) as Turno3 from paquetes
where ( HoraProd between '14:15' and '22:30' )
group by FechaProd
union
select FechaProd, cast(0  AS NUMERIC(12,2)  as Turno1, cast(0  AS NUMERIC(12,2)  as Turno2, cast(Count(*)  AS NUMERIC(12,2)  as Turno3 from paquetes
where ( HoraProd >= '22:30' ) and ( HoraProd < '06:00' )
group by FechaProd

supongo que este SQL analiza la produccion del turno de la noche
Código SQL [-]
select FechaProd, cast(0  AS NUMERIC(12,2)  as Turno1, cast(0  AS NUMERIC(12,2)  as Turno2, cast(Count(*)  AS NUMERIC(12,2)  as Turno3 from paquetes
where ( HoraProd >= '22:30' ) and ( HoraProd < '06:00' )
group by FechaProd

No se si te funcione com quieres el turno empieza en un dia y termina en otro !

Saludos
Responder Con Cita
  #4  
Antiguo 24-04-2008
zajoma zajoma is offline
Miembro
 
Registrado: feb 2006
Posts: 32
Poder: 0
zajoma Va por buen camino
problemas con union y group

Gracias esa era la solución y en cuanto al tercer turno también es cierto.
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿ union ? Guillermo80 C++ Builder 6 02-03-2008 00:08:11
Impresion de group header group footer Manuel Impresión 3 11-11-2007 01:05:23
consultas anidadas: group by dentro otro group by DobleSiete SQL 7 31-01-2005 14:59:31
Group Header, Detail y Footer Group en la misma pagina MarcelRuz Impresión 0 20-04-2004 23:27:14
Problemas con GROUP BY en firebird verm83 SQL 7 15-04-2004 11:31:26


La franja horaria es GMT +2. Ahora son las 06:07:17.


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