Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   clausula exists "minus" (https://www.clubdelphi.com/foros/showthread.php?t=91900)

kevi_monn 30-05-2017 11:18:17

clausula exists "minus"
 
Realizo una consulta con exists en psql donde tengo la siguiente sentencia
Código SQL [-]
select a.placa from autos a where exists(
    select aa.placa from auto_acci aa where exists(
        select * from accidentes ac where aa.no_acc=ac.no_acc and aa.placa=a.placa
)
me arroja los datos del placa auto en los que existe un accidente. Ahora bien si mi consulta fuese, saber que auto a participado en todos los accidentes?. me refiero a que si hay una clausula como la del algebra relacional "Minus". Gracias

gatosoft 30-05-2017 23:43:55

No veo como resolver tu necesidad especifica con un minus, sin embargo, la documentacion del minus e intersect de oracle está en el wiki de oracle

para el caso puntual:

Asumo que en cada accidente existe al menos un auto asociado y como en tu consulta solo te interesa la placa, yo iria solo a revisar una tabla, con algo como:


Código SQL [-]
Select placa 
from 
(
   Select placa, count(*) cuantos --cuanta los accidentes por auto
      from auto_acci
     <¿where rango de fecha?>
     group by placa
) where Cuantos in ( --filtra los autos que tengan numero de accidentes igual al total
                            select count(*) --Cuenta los accidentes
                              from (
                                       select distinct no_acc
                                         from auto_acci
                                         <¿where rango de fecha?>
                                     )
                            )


saludo

kevi_monn 01-06-2017 01:45:40

Resuelto
 
Muchas gracias por responder a mi duda, lo resolvi de la siguiente manera
Código SQL [-]
select aa.placa   --Muestro las placas del auto que tiene n(del total de accidente)      
from autos a     
natural join auto_acci aa     
group by aa.placa 
having count(*) = (select count(*) from accidentes ) --Busco cuantos accidentes existen

kevi_monn 01-06-2017 01:51:10

No se veia del todo
 
No se veia del todo el codigo en la parte de arriba lol
Código SQL [-]
select  aa.placa --Muestro las placas del auto que tiene n(del total de accidente) 
from autos a
natural join auto_acci aa
group by aa.placa 
having count(*)=( select count(*) from accidentes ) --Busco cuantos accidentes existen


La franja horaria es GMT +2. Ahora son las 20:54:11.

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