Visualizzazione dei risultati da 1 a 6 su 6

Discussione: query straincasinata

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892

    query straincasinata

    Salve a tutti,

    ho a che fare con una query veramente incasinata. Purtroppo la tabella mysql è la risultante di una serie export da un programma gestionale di contabilità analitica, ed io non controllo né il programma né gli export. Quindi devo lavorare sulla tabella così com'è.

    Dunque. La query è questa:

    codice:
    SELECT Des_Fattore_L5, Des_Fattore_L2, SUM(Importo_Economico) AS somma 
    FROM economici WHERE Centro_L5 LIKE '%$mioL5%' And esercizio=2005 
    GROUP BY Des_Fattore_L5
    In pratica attraverso questa query io sommo gli importi (Importo_Economico) mensili per ogni descrittore (Des_Fattore_L5) di un dato anno (esercizio), in questo caso il 2005.

    E fin qui tutto bene: il risultato è questo:
    codice:
    descrizione                                                         2005                2006  
     PRODOTTI FARMACEUTICI                                   402145 
     PLASMADERIVATI                                              3092 
     MATERIALI DIAGNOSTICI PRODOTTI CHIMICI          47 
     SUPPORTI INFORMATICI E CANCELLERIA                297 
     ALTRI BENI NON SANIT.                                      7 
     MATERIALE PER DISINFEZIONE                             93 
     PRESIDI CHIRURGICI E MATERIALI SANITARI           32122 
     MATER.GUARD.,PULIZ.E CONVIV.IN GENERE            488
    Il problema è che io devo terminare la tabella inserendo per ogni descrittore anche il valore dell'esercizio 2006 (che si trova nella stessa tabella) e non so come fare a dire all'istruzione Sql di raggrupparmi prima i valori per l'esercizio 2005, e poi per quello 2006 inserendoli nella colonna a fianco. Inoltre è possibile che esistano alcuni dati presenti nel 2006 e non nel 2005 e viceversa, e anch'essi devono apparire.

    Ho tentato creando un alias della tabella, ma non sono arrivato a niente...

  2. #2
    ho letto rapidamente e non ho la certezza di aver capito.... prova

    codice:
    WHERE Centro_L5 LIKE '%$mioL5%'
    GROUP BY Des_Fattore_L5, esercizio

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    ehm, no: in questo caso mi duplica le voci (p. es: mi mette due volte "prodotti farmaceutici", una col valore 2005, l'altra col valore 2006). Invece io ho necessità di fargli separare i due valori sulle colonne della stessa riga...

  4. #4
    prova con un paio di if...

    codice:
    SELECT Des_Fattore_L5, Des_Fattore_L2, 
    SUM(if(esercizio = 2005, Importo_Economico, 0) AS somma2005,
    SUM(if(esercizio = 2006, Importo_Economico, 0) AS somma2006
    FROM economici WHERE Centro_L5 LIKE '%$mioL5%' 
    GROUP BY Des_Fattore_L5

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    Ho provato come dici tu, con gli if, ma di mà errore:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\inetpub\wwwroot\cdg\scheda8.php on line 77

    e l'errore mi deriva dall'uso degli if

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    certo che mi deriva dall'uso degli if... ho scritto IPORTO_Economico !!!!

    Perfetto!!! Così funziona!!! Piero.mac sei un mito


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.