Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [SQL] Query: problemi

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    281

    [SQL] Query: problemi

    Ho una tabella ke contiene dei prezzi di diversi articoli. Questa tabella è composta dai campi

    ID, CodArticolo,CodFornitore e Prezzo

    Ora io volevo fare una query ke per ogni articolo mi restituisce il fornitore ke fornisce il prezzo minore x quell articolo e il prezzo, ma non riesco a costruirla

    Riesco solo a fare una query ke restituisce x ogni articolo il prezzo minore, ma senza il fornitore, in questo modo:
    codice:
    SELECT     CodArticolo, MIN(Prezzo) AS Prezzo
    FROM         T_MAGAZZINO_PREZZI
    GROUP BY CodArticolo
    Qualcuno sa aiutarmi?

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao... allora se ho capito la domanda farei così: non ho provato al query ma secondo devi fare una join su due tabelle e cioè una cosa del tipo:

    SELECT CodArticolo, MIN(Prezzo) AS Prezzo, fornitore
    FROM T_MAGAZZINO_PREZZI, T_FORNITORI
    WHERE T_MAGAZZINO_PREZZI.CodFornitore = T_FORNITORI.CodFornitore
    GROUP BY CodArticolo

    SUPPONENDO CHE LA TABELLA CHE CONTENGA I NOMI DEI FORNITORI SIA INDICATA COL NOME DI T_FORNITORI.Penso che così dovrebbe andare.

    Spero ti sia utile. Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    281
    No nn va bene
    Non funziona xkè ogni campo ke si mette nella select va poi messo anke nella group by e così facendo mi restituisce il prezzo minore x ogni coppia di articoli e fornitori, praticamente mi restituisce tutta la tabella

  4. #4
    Credo che questo vada essendo ANSI SQL, ma non garantisco (ad esempio non andrà su MySql)

    codice:
    SELECT t_magazzino_prezzi.codarticolo,
           t_magazzino_prezzi.prezzo, 
           t_magazzino_prezzi.fornitore
    FROM   t_magazzino_prezzi
    WHERE  t_magazzino_prezzi.prezzo IN 
           (
           SELECT MIN(prezzo) 
           FROM t_magazzino_prezzi AS t1 
           WHERE t1.codarticolo=t_magazzino_prezzi.codarticolo
           );
    
    
    oppure
    
    SELECT t_magazzino_prezzi.codarticolo, 
           t_magazzino_prezzi.prezzo, 
           t_magazzino_prezzi.fornitore
    FROM   t_magazzino_prezzi
    WHERE  t_magazzino_prezzi.prezzo <= ALL 
          (
          SELECT prezzo 
          FROM t_magazzino_prezzi AS t1 
          WHERE t_magazzino_prezzi.codarticolo = t1.codarticolo
          );

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    281
    Grazie 1000 funziona!!!!

    una cosa: in caso ke x un articolo esistano + fornitori cn il prezzo + basso (cioè cn lo stesso prezzo) io vorrei visualizzarne solo uno...cm faccio?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.