Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692

    Somma del totale lordo per singola data

    Ciao.

    Perchè questa query invece di restituire il totale lordo per ciascuna data, restituisce il totale lordo di tutte le date ?

    codice:
       SQL = " SELECT *, "
       
       SQL = SQL & " ( SELECT SUM(TOTALE_LORDO) "
       SQL = SQL & "   FROM SIT WHERE T = 1 ) AS strTOTALELORDO_1, "
       
       SQL = SQL & " ( SELECT SUM(TOTALE_LORDO) "
       SQL = SQL & "   FROM SIT WHERE T = 2 ) AS strTOTALELORDO_2 "
       
       SQL = SQL & " FROM "
       SQL = SQL & " SIT "
      
       SQL = SQL & " GROUP BY DATA_LAV "
       SQL = SQL & " ORDER BY DATA_LAV DESC "
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Forse il group by lo devi mettere dentro le sub select?

    Roby

  3. #3
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da Roby_72
    Forse il group by lo devi mettere dentro le sub select?

    Roby
    Ho già provato ma risponde con questo errore:

    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E31)
    [MySQL][ODBC 3.51 Driver][mysqld-5.0.21-community-nt]Subquery returns more than 1 row

    codice:
    SQL = " SELECT *, "
       
       SQL = SQL & " ( SELECT SUM(TOTALE_LORDO) "
       SQL = SQL & "   FROM SIT WHERE T = 1 GROUP BY DATA_LAV ) AS strTOTALELORDO_1, "
       
       SQL = SQL & " ( SELECT SUM(TOTALE_LORDO) "
       SQL = SQL & "   FROM SIT WHERE T = 2 GROUP BY DATA_LAV ) AS strTOTALELORDO_2 "
       
       SQL = SQL & " FROM "
       SQL = SQL & " SIT "
      
       SQL = SQL & " ORDER BY DATA_LAV DESC "
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  4. #4

  5. #5
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da optime
    microbellodezio, guarda cosa abbiamo combinato qui http://forum.html.it/forum/showthrea...readid=1271826

    Grazie per il suggerimento, lo terrò da conto.

    Nel mio caso specifico ho risolto così ( è stato sufficiente consultare la documentazione in linea di MySQL ) :

    codice:
    SELECT *
         , SUM(CASE WHEN T = 1
                    THEN TOTALE_LORDO END) AS strTOTALELORDO_1
         , SUM(CASE WHEN T = 2
                    THEN TOTALE_LORDO END) AS strTOTALELORDO_2
         , SUM(TOTALE_LORDO) AS SUM_TOTALE_LORDO
      FROM SIT
    GROUP
        BY DATA_LAV DESC
        WITH ROLLUP
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

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