Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Contar registros en una columna (https://www.clubdelphi.com/foros/showthread.php?t=55529)

dtomeysoto 18-04-2008 20:39:52

Contar registros en una columna
 
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 [-]
 
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

utiliza Group By
 
Cita:

Empezado por dtomeysoto (Mensaje 281096)
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 [-]
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

Código SQL [-]
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

no funciona
 
amigo probe eso pero no funciona.

jcarteagaf 18-04-2008 21:05:19

Maestro detalle
 
Que tal si intentas esto:

Código SQL [-]
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

Prueba
Código SQL [-]
SELECT 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

ya resolvi, gracias
 
Amigos, gracias a sus ideas resolvi con la siguente sentencia SQl:

Código SQL [-]
size="1">
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


La franja horaria es GMT +2. Ahora son las 19:25:16.

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