PDA

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