Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Query multipla SQL con group by

    Ho un database con questa struttura:

    Prezzo vendita | | Data vendita || Estero (flag)

    e ho bisogno di una query che mi faccia il totale delle vendite giornaliere.
    Fino ad ora non esisteva il campo ESTERO, quindi per avere il totale mi bastava fare:

    SELECT Sum(prezzo vendita) AS tot, Data vendita
    FROM tabella
    GROUP BY Data vendita;

    Il risultato era qualcosa tipo:

    100€ || 01/01/2009
    200€ || 03/01/2009
    ecc...

    Ora invece vorrei qualcosa tipo:

    80€ || 01/01/2009 || 20€
    150€|| 03/01/2009 || 50€

    Dove in pratica nella prima colonna compaiono le vendite dove il flag ESTERO è impostato a zero, mentre nella terza colonna le vendite con flag ESTERO impostato ad "1".

    E' possibile eseguirla o devo ricorrere per forza a 2 query separate ?
    www.fulleffect.it
    Il miglior sito hip hop in Italia.

    FAIEL aka Raffaele Madaro
    FORZA BARI !!

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select
    sum(if(estero=0,prezzo_vendita,0)) as tot_zero, 
    sum(if(estero=1,prezzo_vendita,0)) as tot_uno,
    data_vendita
    from tabella
    group by data_vendita

  3. #3
    Grazie mille per la risposta, ma non perchè non riesco a farla funzionare...sto cercando di utilizzarla su Access, forse non è compatibile ?
    www.fulleffect.it
    Il miglior sito hip hop in Italia.

    FAIEL aka Raffaele Madaro
    FORZA BARI !!

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Se usi access prova a sostituire if con iif

  5. #5
    Grazie ancora, provo subito, ma posso chiederti perchè questa sintassi ?
    if(estero=0,prezzo_vendita,0)

    Lo zero finale cosa significa ?
    www.fulleffect.it
    Il miglior sito hip hop in Italia.

    FAIEL aka Raffaele Madaro
    FORZA BARI !!

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Serve per verificare il valore del campo estero.
    Nel caso sia uguale a 0 viene aggiunto alla somma che scaturisce dal raggruppamento il valore di prezzo vendita, in caso contrario con 0 non gli aggiungi niente.
    Stesso discorso vale per il caso in cui il campo uguale sia pari a 1.
    P.S. Se hai usato un campo di tipo sì/no anzichè i valori 0 e 1, se non sbaglio quando il campo è "checkato" il valore è -1 e non 1.

  7. #7
    Veramente sorprendente, con il tuo PS hai anticipato la mia futura domanda, visto che non stavo riuscendo a farla funzionare.
    Veramente grazie mille.
    www.fulleffect.it
    Il miglior sito hip hop in Italia.

    FAIEL aka Raffaele Madaro
    FORZA BARI !!

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da faiel
    Veramente sorprendente, con il tuo PS hai anticipato la mia futura domanda, visto che non stavo riuscendo a farla funzionare.
    Veramente grazie mille.
    Lo immaginavo.
    Prego.

  9. #9
    Ne approfitto di te visto che noto che hai dimestichezza con access.
    Uso un database access senza utilizzando il pacchetto office e quindi senza interfacciarmi con alcun linguaggio di programmazione.
    Ora però le mie esigenze comminciano a crescere ed ho bisogno di personalizzare alcun funzioni (stiamo sempre parlando di banalità).
    Io non utilizzo VB e non lo conosco (faccio altri linguaggi), per cui vorrei sapere prima di mettermi a studiare se per esempio posso utilizzarlo per modificare alcune cose, per esempio i REPORT.
    per esempio quando creo un report (generato da una query) ho bisogno di inserire un contatore incrementale, per es:

    1 ....record
    2.....record
    3 ...record

    Posso inserire il codice VB direttamente in access senza creare applicazioni ad hoc ?
    www.fulleffect.it
    Il miglior sito hip hop in Italia.

    FAIEL aka Raffaele Madaro
    FORZA BARI !!

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    A quanto ho capito quello che vuoi fare è aggiungere un semplice numero progressivo nel report. Per fare ciò basta che apra il report in visualizzazione struttura, inserisca una casella di testo, come origine controllo gli assegni valore

    =1

    Premi f4 per aprire le proprietà della casella e nella scheda dati, alla voce somma parziale, selezioni su gruppo. Prima di fare ciò premi sulla barra degli strumenti il pulsante ordinamento e raggruppamento e alla voce campo o espressione selezioni id.

    P.S. Siamo andati decisamente off-topic. Chiedi a un moderatore di spostarti su windows e in futuro per i problemi di access e vba posta lì.

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.