Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    31

    query per fare combinazioni

    salve a tutti. ho questa tabella :

    `PRODOTTO_ALIMENTARE`(`Nome`,`Ditta_produttrice`,` Valore_energetico`,`Carboidrati`,`Grassi`,`Protein e`,`Costo`,`Indicazione`) VALUES (....)

    dove nella colonna indicazione c'è una scelta tra alcuni valori, come celiachia, diabete1, diabete2, allergiaLatte, ecc..
    ho diversi prodotti alimentari inseriti e speravo di poter fare una query che mi da come risultato una combinazione,o più combinazioni, di tre prodotti alimentari dove la somma di questi tre elementi non superi un certo valore di costo. è possibile farla, oppure mi sto cimentando in qualcosa di troppo complesso?
    grazie a tutti in anticipo per l'aiuto

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    Re: query per fare combinazioni

    Originariamente inviato da kelmer
    salve a tutti. ho questa tabella :

    `PRODOTTO_ALIMENTARE`(`Nome`,`Ditta_produttrice`,` Valore_energetico`,`Carboidrati`,`Grassi`,`Protein e`, `Costo`, `Indicazione`) VALUES (....)

    dove nella colonna indicazione c'è una scelta tra alcuni valori, come celiachia, diabete1, diabete2, allergiaLatte, ecc..
    ho diversi prodotti alimentari inseriti e speravo di poter fare una query che mi da come risultato una combinazione,o più combinazioni, di tre prodotti alimentari dove la somma di questi tre elementi non superi un certo valore di costo. è possibile farla, oppure mi sto cimentando in qualcosa di troppo complesso?
    grazie a tutti in anticipo per l'aiuto
    Si, certo che la puoi fare.
    Inserisci il nome del tuo DB (come da regolamento) e inviaci qualche dato di esempio, cosi' da scriverti la select.

  3. #3

    Re: Re: query per fare combinazioni

    Originariamente inviato da mosquito70
    Si, certo che la puoi fare.
    Inserisci il nome del tuo DB (come da regolamento) e inviaci qualche dato di esempio, cosi' da scriverti la select.
    @kelmer

    Ciao,

    come da regolamento dovevi inserire nel titolo il nome della piattaforma del database ... se lo posti correggo la discussione altrimenti sarò costretto a chiuderla.

    Grazie
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    31

    [MYSQL] query per fare combinazioni

    scusate ancora, ma mi è scivolato di mente d'inserimento del database che per l'appunto è [MYSQL].. chiedo perdono ancora...
    posto alcuni dati di esempio per poter lavorare

    VALUES ('penne rigate','Le veneziane','345','78','0.71','7.7','1.15','celiach ia');
    VALUES ('pasta all uovo','SCHAR','384','79','4.2','6.8','1.25','celia chia');
    VALUES ('spaghetti','BIOALIMENTA','346','78','1.2','5.7', '1.05','celiachia');
    VALUES ('cavatelli','Happyfarm','346','78','1.2','5.7','0 .95','celiachia');
    VALUES ('cavatelli','Nutrifree','350','78.4','1.0','7.0', '0.90','celiachia');
    VALUES ('pane','SCHAR','218','43.1','3.5','3.5','0.35','c eliachia');
    VALUES ('tortellini','Glutenout','299','49','6.74','10.3' ,'1.20','celiachia');

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Alcuni chiarimenti.

    Se una combinazione è:

    penne rigate,pasta all'uovo,spaghetti

    devono risultare oppure no altre combinazioni degli stessi 3 prodotti in ordine diverso
    pasta all'uovo,penne rigate,spaghetti
    spaghetti,pasta all'uovo, penne rigate
    ecc.
    ?

    Vedo che ad esempio il prodotto "cavatelli" è abbinato a due case produttrici diverse. Nella generazione delle combinazioni possono risultare i due cavatelli oppure no?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    31
    in pratica si deve generare un menu per una mensa formato da tre prodotti, che non superi un certo costo per l'utente.ora ponendo questa domanda hai posto in me un nuovo dubbio, se mettere o no una nuova colonna all'interno della tabella prodotto_alimentare con la dicitura 'Tipo' per ovviare a questo problema, e cioè di non selezionare più di un primo, un secondo e un dessert.sarebbe più facile?
    per il momento, la combinazione deve essere unica e non ripetuta...

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    La mia idea per evitare combinazioni doppie è quella di aggiungere alla tua tabella un ulteriore campo che nella mia query chiamerò valore. A ciascun record assegno valori 1,2,4,8,16,32 e così via.

    La query diventerebbe:

    codice:
    select tb1.nome,tb2.nome,tb3.nome,
    (tb1.valore+tb2.valore+tb3.valore) as pasto, (tb1.costo+tb2.costo+tb3.costo) as costo_totale
    from `prodotto_alimentare` as tb1,`prodotto_alimentare` as tb2, `prodotto_alimentare` as tb3
    where tb1.nome <> tb2.nome and tb2.nome <> tb3.nome and tb1.nome <> tb3.nome
    group by pasto
    order by costo_totale desc
    Per limitare la ricerca alle combinazioni la cui somma di prezzi non supera un certo ammontare ti basta aggiungere la clausola having dopo il group by.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.