Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-10-2019
rruffino rruffino is offline
Miembro
 
Registrado: dic 2004
Ubicación: Berrotaran, Cordoba - Argentina
Posts: 215
Poder: 20
rruffino Va por buen camino
Contar valores

Hola, buen día... tengo dos tablas A y B, con cardinalidad de 1-->N desde A hacia B... en B aparecen varios registros particulares por cada registro de A. Lo que necesito saber es cuantos registros de A tienen al menos un registro de B que cumpla cierta condicion.
Por ejemplo... en A que es la venta tengo el numero de comprobante y en B tengo los items que vendi que pueden repetirse. Lo que necesito es que cuando el item se repite en B me lo cuente una sola vez en A.
Ya he probado con el group by pero siempre me saca la cantidad total.
Aqui el código:
Código SQL [-]
      select count(COMPROBANTE.ID_COMPROBANTE)
      from COMPROBANTE
      left join DETALLE_COMPROBANTE
      on DETALLE_COMPROBANTE.NUM_COMPROBANTE=COMPROBANTE.ID_COMPROBANTE and 
            DETALLE_COMPROBANTE.CONCEPTO=:num_conc and
            COMPROBANTE.FECHA_EMISION>=:desde and
            COMPROBANTE.FECHA_EMISION<=:hasta and
            DETALLE_COMPROBANTE.SUMA_EN_TOTAL=1 and
            DETALLE_COMPROBANTE.ES_IMPUESTO=0 and
            COMPROBANTE.ANULADO=0 and
            DETALLE_COMPROBANTE.TOTAL<>0 and
            COMPROBANTE.TIPO='FACTURA'      
      group by DETALLE_COMPROBANTE.CONCEPTO
Gracias.
Responder Con Cita
  #2  
Antiguo 28-10-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por rruffino Ver Mensaje
Lo que necesito saber es cuantos registros de A tienen al menos un registro de B que cumpla cierta condicion.
Lo que necesito es que cuando el item se repite en B me lo cuente una sola vez en A.
Creo que son cosas distintas, exactamente qué quieres.
Responder Con Cita
  #3  
Antiguo 28-10-2019
rruffino rruffino is offline
Miembro
 
Registrado: dic 2004
Ubicación: Berrotaran, Cordoba - Argentina
Posts: 215
Poder: 20
rruffino Va por buen camino
Respuesta

Hola Casimiro, como estas... gracias por responder... Yo quiero que me cuente una sola vez aquellos registros que estan en TABLA_A y que en TABLA_B tienen uno o mas registros relacionados a TABLA_A
TABLA_A
ID: Numero:
1 100
2 101
3 102

TABLA_B
ID_A Codigo
1 E
1 E
2 E
2 A
2 C
3 A

ID_A es el campo que nos relaciona las tablas.
Lo que quiero puntualmente es contar cuantos registros en TABLA_A tienen el código E en TABLA_B, para ese ejemplo la cuenta debería ser 2 que serian de los ID_A 1 y 2.
Espero ser claro.
Saludos!!!
Responder Con Cita
  #4  
Antiguo 28-10-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Entonces entiendo que quieres contar los registros en B, no los de A. Además, que todos los de B tendrán un registro en A.
Responder Con Cita
  #5  
Antiguo 28-10-2019
rruffino rruffino is offline
Miembro
 
Registrado: dic 2004
Ubicación: Berrotaran, Cordoba - Argentina
Posts: 215
Poder: 20
rruffino Va por buen camino
Respuesta

Lo que quiero es contar cuantos en la Tabla_A tienen al menos un registro en la Tabla_B, pero que me cuente uno solo en Tabla_A cuando tiene mas de un registro igual en Tabla_B.
Saludos.
Responder Con Cita
  #6  
Antiguo 29-10-2019
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola, rruffino.

Haz la consulta sobre la tabla detalle usando Count con Distinct, además de la unión con la tabla maestra para aplicar condiciones sobre ambas. Ejemplo:

Código:
Select Count (Distinct DC.NUM_COMPROBANTE) From DETALLE_COMPROBANTE DC
  Inner Join COMPROBANTE C On C.ID_COMPROBANTE = DC.NUM_COMPROBANTE
  Where (C.ANULADO = 0) And (DC.TOTAL <> 0)
Observa que también puedes usar alias (C, DC) para simplificar el código SQL, sobre todo cuando se combinan diferentes tablas en la misma consulta.

Espero te sea de ayuda.

Al González.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Contar registros en FB Angel.Matilla Firebird e Interbase 4 17-04-2018 19:37:44
VALORES FANTASMAS FIREBIRD 2.1 valores Grandes ASAPLTDA Firebird e Interbase 17 02-12-2012 12:09:02
Duda contar valores distintos ldelmor Varios 1 16-07-2012 19:47:51
contar base dilver SQL 2 26-05-2011 21:28:10
Contar vcaracteres jhcaboverde Varios 4 23-01-2007 17:25:08


La franja horaria es GMT +2. Ahora son las 20:24:44.


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
Copyright 1996-2007 Club Delphi