Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445

    [SQL] Non riesco a formulare una query

    Situazione: ho una tablla che descrive degli ingredienti con 6 colonne (nome, disponibilità, scadenza, prezzo, soglia, unità di misura), la chiave primaria è la coppia "nome-scadenza". All'interno della tabella possono esserci al più 2 tuple dello stesso ingrediente, le quali differiscono per data di scadenza.

    Problema: devo ottenere una tabella con tutti e soli gli ingredienti la cui disponibilità è <= al proprio attributo "soglia".
    Se ci fosse una sola tupla per ogni ingrediente sarebbe semplicissimo
    SELECT * FROM ingrediente WHERE disponibilita < soglia
    se però un ingrediente ha una disponibilità inferiore alla soglia, ma è presente anche una seconda tupla dello stesso ingrediente con disponibilità tale che la somma delle due disponibilità superi la soglia, questo ingrediente non deve comparire nel risultato.

    Come posso fare?

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Non so, prova una cosa del genere

    SELECT nome, SUM(disponibilità) AS totale
    FROM tabella
    WHERE totale < soglia
    GROUP BY nome

    L'ho scritta di fretta, forse ci sarà qualche errore di sintassi...
    il concetto potrebbe essere giusto?

    EDIT: piccola correzione...

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Ecco la query che ho usato co n successo:

    SELECT * FROM ingrediente
    GROURP BY nome
    HAVING SUM(disponibilita) <= soglia

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.