-
Problema su Query SQL
Salve a tutti,
avrei bisogno di selezionare tramite una query (magari utilizzando anche una view), per ogni prodotto, il fornitore che lo offre al prezzo pių basso. Ora il problema č che possono esserci pių fornitori che mi forniscono lo stesso prodotto allo stesso prezzo pių basso quindi vorrei visualizzarli nel risultato. Come posso procedere? Avevo pensato ad un group by su prodotto ma mi restituisce un unico fornitore per ogni singolo prodotto!
La mia tabella Catalogo:
FORNITORE | CODICEPRODOTTO | PREZZO
Esempio:
FORNITORE | CODICEPRODOTTO | PREZZO
AAA | 01 | 10
AAB | 01 | 10
CCA | 01 | 15
CCD | 01 | 13
AAA | 02 | 22
AAB | 02 | 21
CCA | 03 | 91
CCD | 03 | 99
Vorrei in output:
FORNITORE | CODICEPRODOTTO | PREZZO
AAA | 01 | 10
AAB | 01 | 10
AAB | 02 | 21
CCA | 03 | 91
Grazie!
-
In altre parole prendi dalla tabella solo le righe per cui non esiste un altro codice prodotto ad un prezzo inferiore:
Codice:
select * from tabella t1 where not exists (select 1 from tabella t2 where t2.codiceprodotto = t1.codiceprodotto and t2.prezzo < t1.prezzo)
-
Perfetto, grazie mille! Funziona! L'unica cosa, perchč utilizziamo select 1 nella seconda query ??
-
Non importa cosa metti nei campi della SELECT di una EXISTS, tanto verifica solo che ci sia almeno una riga per considerarla vera.