Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

consulta SQL primero y último

Estas en el tema de consulta SQL primero y último en el foro de SQL Server en Foros del Web. buenas gente, me he quedao un poco atascao en una consulta de tres tablas, las cuales están relacionadas. tengo la tabla pliegos, incidencias y def. ...
  #1 (permalink)  
Antiguo 08/06/2010, 02:08
 
Fecha de Ingreso: mayo-2010
Mensajes: 12
Antigüedad: 13 años, 11 meses
Puntos: 0
consulta SQL primero y último

buenas gente,

me he quedao un poco atascao en una consulta de tres tablas, las cuales están relacionadas.
tengo la tabla pliegos, incidencias y def. Pliegos e incidencias se relacionan por el ID e incidencias y def por ID_ID. bien, tengo que agrupar por pliegos_id, por ciclo que está en la tabla incidencias(no es clave) y por ID_ID. el problema me viene que al agrupar por ciclo para hacer el informe sólo tengo que sacar el primer y último ciclo de cada ID de pliego. Lo que saco por pantalla es la tabla DEF entera más los agrupamientos que ya he comentado.

gracias por la ayuda, un saludo.
  #2 (permalink)  
Antiguo 08/06/2010, 03:55
 
Fecha de Ingreso: mayo-2010
Mensajes: 12
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: consulta SQL primero y último

Ayuda por favor!!
  #3 (permalink)  
Antiguo 08/06/2010, 08:19
Avatar de -rommel_  
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 360
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: consulta SQL primero y último

La verdad!!!... no entendi mucho :( desearia ayudarte... podrias poner tus tabla y un ejemplo de como esta tu data y la consulta que haces... y que deberia salir... asi seria mucho mas facill ayudarte...
  #4 (permalink)  
Antiguo 08/06/2010, 08:47
 
Fecha de Ingreso: mayo-2010
Mensajes: 12
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: consulta SQL primero y último

ok, vamos a ver si me explico mejor que no está muy clara la explicación, tienes razón.

tabla pliegos
id_pliego
ta_id
atributos(no importan)

tabla incidencias
id_incidencia
id_incidencia_def
ta_id
ciclo
atributos(no importan)

tabla incidencias_def
id_incidencia_def
atributos(importan)

Bien las tablas se relacionan de esta manera,
pliegos.ta_id=incidencias.ta_id y incidencias.id_incidencia_def=incidencias_def.id_i ncidencia_def.
Vale hasta aqui fácil.
El tema es que tengo el atributo ciclo(en rojo) en la tabla incidencias, que no es clave(pero como si lo fuera) que hay alrededor de 10.000 registros, muchos para hacer informes, entonces me piden que saque sólo el primero y el último de los ciclos por cada TA_ID, con los datos de la tabla incidencias_def. mi consulta es esta pero no se como poner el primero y ultimo ciclo, asi que de momento es asi, solo relacionando.

SELECT PLIEGOS_HISTORICO.PH_TA_ID, INCIDENCIAS.IN_CICLO, INCIDENCIAS_DEF.ID_ID, INCIDENCIAS_DEF.ID_TIPO, "
INCIDENCIAS_DEF.ID_CONCEPTO, INCIDENCIAS_DEF.ID_REITERACION, INCIDENCIAS_DEF.ID_PARADA, "
INCIDENCIAS_DEF.ID_ZONA, INCIDENCIAS_DEF.ID_MODO "
FROM PLIEGOS_HISTORICO, INCIDENCIAS, INCIDENCIAS_DEF "
WHERE PLIEGOS_HISTORICO.PH_TA_ID = INCIDENCIAS.IN_TA_ID "
AND PLIEGOS_HISTORICO.PH_CICLO=INCIDENCIAS.IN_CICLO "
AND INCIDENCIAS.IN_ID_ID=INCIDENCIAS_DEF.ID_ID"

espero me podáis ayudar, saludos.
  #5 (permalink)  
Antiguo 08/06/2010, 09:53
Avatar de -rommel_  
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 360
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: consulta SQL primero y último

A ver... te copiare el codigo que yo utilice... en unos de los reportes que utilice... a lo mejor puede resultar muy trabajoso... pero al final me salio... y bueno hasta ahora funciona... mi reporte indicaba... El mas puntual y el menos impuntual de los trabajadores... por Area... de toda la empresa...

la forma esta igual... pero a ver si tu la aplicas y lo modificas a como quieres que te salga... Saludos espero poder ayudarte...

Código SQL:
Ver original
  1. SELECT  Phis.ta_id
  2.     ,   Inci.Ciclo
  3.     ,   Inci.ta_id
  4.     ,   Idef.Id_incidencias_def
  5.     ,   (   SELECT  MIN(Inci2.Ciclo)
  6.             FROM    Incidencias Inci2
  7.             WHERE   Inci2.ta_id = Phis.ta_id
  8.                 AND Inci2.id_incidencias_def = idef.id_incidencias_def
  9.                 AND Inci2.ta_id = Inci.ta_id) AS CicloMinimo
  10.     ,   (   SELECT  MAX(Inci2.Ciclo)
  11.             FROM    Incidencias Inci2
  12.             WHERE   Inci2.ta_id = Phis.ta_id
  13.                 AND Inci2.id_incidencias_def = idef.id_incidencias_def
  14.                 AND Inci2.ta_id = Inci.ta_id) AS CicloMaximo
  15. --    ... (todos los campos que quieras sacar    
  16. FROM    Pliegos_Historico Phis, Incidencias_Def Idef, Incidencias Inci,
  17. WHERE   Phis.ta_id                  =   Inci.ta_id
  18.     AND Inci.ta_id_incidencia_def   =   Idef.id_incidencia_def
  19.     AND Phis.Ciclo                  =   Inci.Ciclo
  20. --    ... (Demas Filtros)
  #6 (permalink)  
Antiguo 08/06/2010, 09:57
 
Fecha de Ingreso: mayo-2010
Mensajes: 12
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: consulta SQL primero y último

Grcias Rommel, voy a darle caña a ver si sale.

un saludo

Etiquetas: primero, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:30.