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

SQL compleja

Estas en el tema de SQL compleja en el foro de Bases de Datos General en Foros del Web. Hola, explico: tengo una tabla de cabeceras y otra de linias. Necesitaria saber: cuantas cabeceras tienen una linia, cuantas cabaceras tienes 2 linias, cuantas cabaceras ...
  #1 (permalink)  
Antiguo 07/05/2009, 02:09
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 4 meses
Puntos: 10
SQL compleja

Hola,

explico: tengo una tabla de cabeceras y otra de linias.

Necesitaria saber: cuantas cabeceras tienen una linia, cuantas cabaceras tienes 2 linias, cuantas cabaceras tienes 3 linias y asi continuamente.

Ejemplo de las Tablas:
cabecera -> num_cab *
linia-> num_cab *, id_articulo

donde la cabecera
num_cab = 1,
linia
num_cab=1, id articulo = 1
num_cab=1, id_articulo= 2
num_cab = 2,
linia
num_cab=2, id articulo = 1

el resultado seria

hay 1 cabecera de 1 linia
hay 1 cabcerea de 2 linias
...


Gracias de antemano,

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #2 (permalink)  
Antiguo 07/05/2009, 09:20
Avatar de Thumper  
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 19 años, 8 meses
Puntos: 6
Respuesta: SQL compleja

Espero que te sirva:

DECLARE @TABLE_CAB TABLE( INTID INTEGER, VARDES VARCHAR(10))
INSERT INTO @TABLE_CAB VALUES( 1, 'CAB1' )
INSERT INTO @TABLE_CAB VALUES( 2, 'CAB1' )
INSERT INTO @TABLE_CAB VALUES( 3, 'CAB1' )
INSERT INTO @TABLE_CAB VALUES( 4, 'CAB1' )

DECLARE @TABLE_DET TABLE( INTID INTEGER, VARDET VARCHAR(10))
INSERT INTO @TABLE_DET VALUES( 1, 'DET1' )
INSERT INTO @TABLE_DET VALUES( 2, 'DET1' )
INSERT INTO @TABLE_DET VALUES( 2, 'DET2' )
INSERT INTO @TABLE_DET VALUES( 3, 'DET3' )
INSERT INTO @TABLE_DET VALUES( 3, 'DET3' )
INSERT INTO @TABLE_DET VALUES( 3, 'DET3' )
INSERT INTO @TABLE_DET VALUES( 4, 'DET1' )

SELECT C.INTID, COUNT( D.INTID )
FROM @TABLE_CAB C INNER JOIN @TABLE_DET D
ON C.INTID = D.INTID
GROUP BY C.INTID
ORDER BY 2
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD
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 21:46.