Visualizzazione risultati 1 fino 4 di 4

Discussione: Problema su Query SQL

  1. #1
    Guest

    Question 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!

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    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)


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    Perfetto, grazie mille! Funziona! L'unica cosa, perchè utilizziamo select 1 nella seconda query ??

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Non importa cosa metti nei campi della SELECT di una EXISTS, tanto verifica solo che ci sia almeno una riga per considerarla vera.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •