- Home
- Categorie
- Coding e Sistemistica
- Coding
- Stringa sql che utilizza più tabelle da riportare in ASP
- 
							
							
							
							
							
Stringa sql che utilizza più tabelle da riportare in ASPCiao 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
 
- 
- 
							
							
							
							
							
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  
 
- 
							
							
							
							
							
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  ) )
 
- 
							
							
							
							
							
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! 
 
- 
							
							
							
							
							
Perfetto, mancava solo COMPILAZIONI.IDQUESTIONARIO nella GROUP BY Buon lavoro!  
 
- 
							
							
							
							
							
Non so come cancellare questo messaggio quindi l'ho modificato