Ver la Versión Completa : Contar registros en una columna
dtomeysoto
18-04-2008, 20:39:52
Amigos, tengo 2 tablas en paradox, la tabla A es la tabla principal y la tabla B es una tabla detalles.
Entonces quiero en una consulta mostrar todos los registros de A y en la ultima columna contar los registros de B para cada fila en A.
He escrito la siguiente consulta SQl pero no consigo lo que necesito ya que me muestra el mismo valor, que viene siendo la cantida de registros que tiene la tabla B
SELECT Cod_Turno, Fecha_Modelo, Nro_Modelo, Nro_Turno, Cant_Toneladas, Tipo_Produccion,
( SELECT COUNT( Cod_Turno )
FROM "TurnosDetalles.DB" TD
WHERE TD.Cod_Turno = Cod_Turno ) TrabCaptados
FROM "Turnos.DB" T
Pudiera alguien ayudarme???
Gracias
BlueSteel
18-04-2008, 20:46:31
Amigos, tengo 2 tablas en paradox, la tabla A es la tabla principal y la tabla B es una tabla detalles.
Entonces quiero en una consulta mostrar todos los registros de A y en la ultima columna contar los registros de B para cada fila en A.
He escrito la siguiente consulta SQl pero no consigo lo que necesito ya que me muestra el mismo valor, que viene siendo la cantida de registros que tiene la tabla B
Código SQL [-] (http://www.clubdelphi.com/foros/#)
SELECT Cod_Turno, Fecha_Modelo, Nro_Modelo, Nro_Turno, Cant_Toneladas, Tipo_Produccion,
( SELECT COUNT( Cod_Turno )
FROM "TurnosDetalles.DB" TD
WHERE TD.Cod_Turno = Cod_Turno ) TrabCaptados
FROM "Turnos.DB" T
Pudiera alguien ayudarme???
Gracias
Hola.. creo que le falta un Group By.. así tu consulta deberia quedar
SELECT COD_TURNO,
FECHA_MODELO,
NRO_MODELO,
NRO_TURNO,
CANT_TONELADAS,
TIPO_PRODUCCION,
(SELECT COUNT(COD_TURNO)
FROM "TurnosDetalles.DB" TD
WHERE TD.COD_TURNO = COD_TURNO) TRABCAPTADOS
FROM "Turnos.DB" T
GROUP BY COD_TURNO, FECHA_MODELO, NRO_MODELO, NRO_TURNO, CANT_TONELADAS, TIPO_PRODUCCION
No se si seria esto,,, por que no he usado mucho el Group By...pero creo que debiera ser así... (no lo he probado...)
Salu2:p:D
dtomeysoto
18-04-2008, 20:57:14
amigo probe eso pero no funciona.
jcarteagaf
18-04-2008, 21:05:19
Que tal si intentas esto:
SELECT A.Cod_Turno,
A.Fecha_Modelo,
A.Nro_Modelo,
A.Nro_Turno,
A.Cant_Toneladas,
A.Tipo_Produccion,
Count(B.*) Total_B
FROM "Turnos.DB" A
JOIN "TurnosDetalles.db" B
ON A.Cod_Turno = B.Cod_Turno
GROUP BY A.Cod_Turno,
A.Fecha_Modelo,A.Nro_Modelo,A.Nro_Turno,A.Cant_Toneladas,A.Tipo_Produccion
Espero que te sirva. Saludos
hecospina
18-04-2008, 21:10:40
PruebaSELECT d.COD_TURNO,d.FECHA_MODELO,d.NRO_MODELO,d.NRO_TURNO,d.CANT_TONELADAS,d.TIPO_PRODUCCION,COUNT(d1.COD_ TURNO) as NoTurnos
FROM "Turnos.DB" d , "TurnosDetalles.DB" d1
WHERE (d1.COD_TURNO = d.COD_TURNO)
GROUP BY d.COD_TURNO, d.FECHA_MODELO, d.NRO_MODELO, d.NRO_TURNO, d.CANT_TONELADAS, d.TIPO_PRODUCCION
dtomeysoto
18-04-2008, 21:32:52
Amigos, gracias a sus ideas resolvi con la siguente sentencia SQl:
SELECT Turnos.Fecha_Modelo, Turnos.Nro_Modelo, Turnos.Nro_Turno, Turnos.Cant_Toneladas, Turnos.Tipo_Produccion, COUNT( Turnosdetalles.Cod_Turno ) aaa
FROM "Turnos.DB" Turnos
INNER JOIN "TurnosDetalles.DB" Turnosdetalles
ON (Turnosdetalles.Cod_Turno = Turnos.Cod_Turno)
GROUP BY Turnos.Fecha_Modelo, Turnos.Nro_Modelo, Turnos.Nro_Turno, Turnos.Cant_Toneladas, Turnos.Tipo_Produccion
ORDER BY Turnos.Fecha_Modelo, Turnos.Nro_Modelo, Turnos.Nro_Turno
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.