+ Rispondi alla Discussione
Risultati da 1 a 6 di 6

Stringa sql che utilizza più tabelle da riportare in ASP

Ultimo Messaggio di Lupo76 il:
  1. #1
    User
    Data Registrazione
    Jan 2013
    Località
    Lecce
    Messaggi
    14

    Stringa sql che utilizza più tabelle da riportare in ASP

    Ciao a tutti,
    spero di riuscire a spiegare il mio problema...

    In Access ho realizzato le seguenti query:

    - Query "ELENCOID":
    SELECT COMPILAZIONI.ID
    FROM COMPILAZIONI
    WHERE (((COMPILAZIONI.IDQUESTIONARIO)=4));

    - QUERY "TEST":
    SELECT RISPOSTE.RISPOSTA, RISPOSTE.IDDOMANDA, Count(ELENCOID.ID) AS ConteggioDiID
    FROM RISPOSTE INNER JOIN ELENCOID ON RISPOSTE.IDCOMPILAZIONE = ELENCOID.ID
    GROUP BY RISPOSTE.RISPOSTA, RISPOSTE.IDDOMANDA
    HAVING (((RISPOSTE.IDDOMANDA)=6));

    come potete vedere la query "TEST" utilizza il risultato della query "ELENCOID".
    Ora dovrei riuscire a ricavare un'unica stringa SQL che mi permetta di raggiungere lo stesso risultato, in quanto successivamente la devo utilizzare in una pagina ASP con:

    set res = conn.execute (stringasql_unica_e_completa)

    Potete aiutarmi?
    Grazie in anticipo

  2. #2
    Moderatore L'avatar di artcava
    Data Registrazione
    Dec 2006
    Località
    Torino
    Messaggi
    284
    Segui artcava su Twitter Aggiungi artcava su Google+ Aggiungi artcava su Facebook Aggiungi artcava su Linkedin Visita il canale Youtube di artcava
    Prova così...

    SELECT RISPOSTE.RISPOSTA, RISPOSTE.IDDOMANDA, Count(COMPILAZIONI.ID) AS ConteggioDiID
    FROM RISPOSTE INNER JOIN COMPILAZIONI ON RISPOSTE.IDCOMPILAZIONE = COMPILAZIONI.ID
    GROUP BY RISPOSTE.RISPOSTA, RISPOSTE.IDDOMANDA
    HAVING (RISPOSTE.IDDOMANDA=6 AND COMPILAZIONI.IDQUESTIONARIO = 4);

    La sintassi dell'SQL di Access non la ricordo più tanto, ma credo che impostando (
    COMPILAZIONI.IDQUESTIONARIO = 4) nell'HAVING o magari nella WHERE dovrebbe funzionare...

    Ciao

  3. #3
    User
    Data Registrazione
    Jan 2013
    Località
    Lecce
    Messaggi
    14
    Ciao Artcava,
    ti ringrazio per la tua risposta!

    Ho fatto il copia incolla della tua stringa in Access, ma compare l'errore "Impossibile eseguire una query che non include l'espressione "RISPOSTE.IDDOMANDA=6 And COMPILAZIONI.IDQUESTIONARIO=4" specificata come parte di una funzione di aggregazione.
    Purtroppo ho sempre fatto query molto semplici ed in questo caso mi trovo impreparato.
    Tu sapresti aiutarmi a capire questo errore ?

    PS. Il linguaggio SQL utilizzato da Access è identico a quello utilizzato in ASP, solo che Access aggiunge sempre il nome della tabella anche dove non serve ad es. Access scrive:
    SELECT COMPILAZIONI.ID
    FROM COMPILAZIONI
    WHERE (((COMPILAZIONI.IDQUESTIONARIO)=4));

    ma si può benissimo scrivere
    SELECT ID FROM COMPILAZIONI WHERE IDQUESTIONARIO=4

    è la stessa identica cosa ed Access accetta anche quest'ultima stringa (in realtà la auto-corregge come vuole lui )

  4. #4
    User
    Data Registrazione
    Jan 2013
    Località
    Lecce
    Messaggi
    14
    Ecco la risposta:

    SELECT RISPOSTE.RISPOSTA, RISPOSTE.IDDOMANDA, Count(COMPILAZIONI.ID) AS ConteggioDiID
    FROM COMPILAZIONI INNER JOIN RISPOSTE ON COMPILAZIONI.ID = RISPOSTE.IDCOMPILAZIONE
    GROUP BY RISPOSTE.RISPOSTA, RISPOSTE.IDDOMANDA, COMPILAZIONI.IDQUESTIONARIO
    HAVING (((RISPOSTE.IDDOMANDA)=6) AND ((COMPILAZIONI.IDQUESTIONARIO)=4));

    L'ho scoperto per caso, subito dopo aver scritto il precedente messaggio.

    Grazie per il tuo aiuto!

  5. #5
    Moderatore L'avatar di artcava
    Data Registrazione
    Dec 2006
    Località
    Torino
    Messaggi
    284
    Segui artcava su Twitter Aggiungi artcava su Google+ Aggiungi artcava su Facebook Aggiungi artcava su Linkedin Visita il canale Youtube di artcava
    Perfetto, mancava solo COMPILAZIONI.IDQUESTIONARIO nella GROUP BY

    Buon lavoro!

  6. #6
    User
    Data Registrazione
    Jan 2013
    Località
    Lecce
    Messaggi
    14
    Non so come cancellare questo messaggio quindi l'ho modificato
    Ultima modifica di Lupo76; 04-03-17 alle 18:24

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.