Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: Problema query sql

  1. #1

    Problema query sql

    Ciao a tutti, mi sono bloccato di fronte ad una modifica che devo fare a questa query:
    -------------------
    sql="SELECT count(id) as sommaid, SUM(pesoreale) as sommapeso,citta FROM FORMULARI WHERE Data >=#" & strDate1 & "#AND Data <=#" & strDate2 & "#"
    SQL=SQL & " and denom_rifiuto ='15.01.01'"
    SQL=SQL & " group by formulari.citta"

    la query sopra funziona solo che devo anche sommare (pesoreale) con un'altro paramentro
    SQL=SQL & " and denom_rifiuto ='15.01.06'"

    in sostanza nella query devo fare 2 sum dello stesso campo ma con parametri differenti.


    Ho provato ad eseguire 2 query ma il problema è che poi a video vorrei avere i 2 valori sulla stessa riga.

    Qualche suggerimento?
    Grazie.

  2. #2

  3. #3

    Grazie... quasi fatta

    Ciao grazie per l'esempio, effettivamente adesso la query incomincia a funzionare ho solo il problema del group by non riesco a capire come mai non mi raggruppa.

    Devo aggiungere il campo citta nella select e raggruppare per esso..
    -------------------------------------
    sql="SELECT MAX(qFoto) AS qFoto, MAX(qBlog) as qBlog FROM ( SELECT sum (pesoreale) AS qFoto, 0 AS qBlog,citta FROM formulari WHERE denom_rifiuto =('15.01.01')"
    sql=sql &"and Data >=#" & strDate1 & "#AND Data <=#" & strDate2 & "#"

    sql=sql &" UNION "
    sql=sql &" SELECT 0 as qFoto, sum(pesoreale) AS qBlog,citta FROM formulari WHERE denom_rifiuto='15.01.06'"
    sql=sql &"and Data >=#" & strDate1 & "#AND Data <=#" & strDate2 & "#"

    sql=sql &") AS subQry"
    SQL=SQL & " group by formulari.citta"
    -------------------------------------------
    Cosi come sopra mi da errore, grazie ciao

  4. #4

    niente..

    Niente.. non riesco a usare un raggruppamento...
    Nelle subquery non si possono usare i group by vero?

  5. #5
    Stai usando Access giusto? Se si, ti consiglio di scrivere le tue query direttamente in Access, così vedi subito se funzionano. Esiste infatti la modalità di visualizzazione SQL, che vedi il codice generato dalla modalità di progettazione. Una volta "debuggate", puoi inserirle nel tuo codice ASP apportando solamente le modifiche per l'inserimento dei parametri.

    Altro consiglio: usa i parametri (cerca nel forum come fare), non usare la concatenazione di stringhe come stai facendo tu, non hai idea di quali guai possa portare questa tecnica!
    Chi non cerca trova.

  6. #6
    ----------------------------------------------------
    impariamo a fare un po' di debug

    *subito* dopo la composizione della stringa SQL metti

    Response.Write "maGGica SQL...: " & sql
    Response.Flush

    poi posta quello che viene a video
    ----------------------------------------------------

  7. #7

    ecco.

    grazie per il vostro aiuto.
    Si sto scrivendo ora dentro in access, ma purtroppo non riesco a disporre il risultato su una riga usando l'alias e la query come da esempio
    Query scritta dentro access. risultato ok ma disposto su righe
    --------------------------------------------
    SELECT citta, sum(pesoreale) AS qFoto, 0 AS qblog FROM formulari WHERE denom_rifiuto="15.01.01" group by formulari.citta
    UNION SELECT 0 as qfoto,citta,sum(pesoreale) AS blog FROM formulari WHERE denom_rifiuto="15.01.06" group by formulari.citta;
    ---------------------------------------------


    qui sopra mancano gli alias e la query finale per inserire tutto su una riga
    Va bene se mi aiutate in quella sopra poi me la studio io per buttarla dentro asp in ogni caso questa sotto è quella che provo a usare e mi da "errore nella proposizione from"
    ------------------------------------------------------
    sql="SELECT MAX(qFoto) AS qFoto, MAX(qBlog) as qBlog FROM ( SELECT sum (pesoreale) AS qFoto, 0 AS qBlog FROM formulari WHERE denom_rifiuto =('15.01.01')"
    sql=sql &"and Data >=#" & strDate1 & "#AND Data <=#" & strDate2 & "#"

    sql=sql &" UNION "
    sql=sql &" SELECT 0 as qFoto,sum(pesoreale) AS qBlog FROM formulari WHERE denom_rifiuto='15.01.06'"
    sql=sql &"and Data >=#" & strDate1 & "#AND Data <=#" & strDate2 & "#"

    sql=sql &") AS subQry"
    SQL=SQL & " group by formulari.citta"
    ------------------------------------------
    Grazie per il vostro aiuto

  8. #8
    Originariamente inviato da optime
    ----------------------------------------------------
    impariamo a fare un po' di debug

    *subito* dopo la composizione della stringa SQL metti

    Response.Write "maGGica SQL...: " & sql
    Response.Flush

    poi posta quello che viene a video
    ----------------------------------------------------
    mi quoto...

  9. #9
    ciao ecco il debug
    ------------------------maGGica SQL...: SELECT MAX(qFoto) AS qFoto, MAX(qBlog) as qBlog FROM ( SELECT sum (pesoreale) AS qFoto, 0 AS qBlog FROM formulari WHERE denom_rifiuto =('15.01.01')and Data >=#01/01/2009#AND Data <=#03/01/2009# UNION SELECT 0 as qFoto,sum(pesoreale) AS qBlog FROM formulari WHERE denom_rifiuto='15.01.06'and Data >=#01/01/2009#AND Data <=#03/01/2009#) AS subQry group by formulari.citta
    Microsoft JET Database Engine error '80040e10'

    Nessun valore specificato per alcuni parametri necessari

  10. #10
    controlla i nomi dei campi. se il nome data è giusto, prova ad usare [Data], non ricordo se Data è una parola riservata

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.