Ciao a Tutti,
ho un database di access sul quale eseguo 3 queries:
q_A:
SELECT Numero, Nazione, Nome, Wp_date AS [Work Proposal], Ris AS Ris_C, Rev FROM t_mrg
WHERE Numero Like '2013044' ORDER BY Numero DESC , Ris DESC , Rev DESC;
con il suddetto codice ottengo il seguente risultato di output:
Numero Nazione Nome Work Proposal Ris_C Rev
2013044 Italy Formazione 28/03/2013 02 02
2013044 Italy Formazione 29/03/2013 02 01
2013044 Italy Formazione 18/03/2013 01 01
2013044 Italy Formazione 18/03/2013 01 00
q_B:
SELECT Numero, Max(Ris) AS Ris_C FROM t_mrg GROUP BY Numero
HAVING Numero Like '2013044' ORDER BY Numero DESC , Max(Ris) DESC;
ed ottengo:
Numero Ris_C
2013044 02
q_C:
SELECT q_A.Numero, q_A.Nazione, q_A.Nome, q_A.[Work Proposal], q_B.Ris_C AS Ris, q_A.Rev
FROM q_B LEFT JOIN q_A ON q_B.Ris_C = q_A.Ris_C
GROUP BY q_A.Numero, q_A.Nazione, q_A.Nome, q_A.[Work Proposal], q_B.Ris_C, q_A.Rev;
ed ottengo:
Numero Nazione Nome Work Proposal Ris_C Rev
2013044 Italy Formazione 28/03/2013 02 02
2013044 Italy Formazione 29/03/2013 02 01
fin qui tutto OK !!
La stessa cosa ora la devo far eseguire dentro una pagina asp :
<%@ Language=VBScript %>
<%
Option Explicit
Dim objConn, objRS_ini, objRS_ris, objRS_last, str_ini, str_ris, str_last, year
%>
....
<BODY>
<%
'
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=2_advance.dsn"
objConn.Open
str_ini = "SELECT Numero, Nazione, Nome, Wp_date AS [Work Proposal], Ris AS Ris_C, Rev FROM t_mrg WHERE Numero Like '2013044' ORDER BY Numero DESC , Ris DESC , Rev DESC;"
Set objRS_ini = objConn.Execute(str_ini) ' e' l' equivalente della q_A
str_ris = "SELECT Numero, Max(Ris) AS Ris_C FROM t_mrg GROUP BY Numero HAVING Numero Like '2013044' ORDER BY Numero DESC , Max(Ris) DESC;"
Set objRS_ris = objConn.Execute(str_ris) ' e' l' equivalente della q_B
' str_last="SELECT str_ini.Numero, str_ini.Nazione, str_ini.Nome, str_ini.[Work Proposal], str_ris.Ris_C AS Ris, str_ini.Rev FROM str_ris LEFT JOIN str_ini ON str_ris.Ris_C = str_ini.Ris_C GROUP BY str_ini.Numero, str_ini.Nazione, str_ini.Nome, str_ini.[Work Proposal], str_ris.Ris_C, str_ini.Rev;"
' Set objRS_last = objConn.Execute(str_last)
' Come si fa a creare l' equivelnte di q_C ??
' Ho provato a creare la str_last ma al reload della pagina l' errore e' che non esiste nel db nessuna tabella che si chiama str_ini e ha ragione !!!
' qual' e' il giusto approccio per risolvere il problema ?? Creare una tabella di appoggio ?? Mettere il risultato in variabile ??
Do While Not objRS_ini.EOF
count_rec = count_rec + 1
'
If count_rec = 1 Then
Response.Write "<TABLE border=1><TR>"
For iLoop = 0 to objRS_ini.Fields.Count - 1
'
Response.Write "<TD>" & objRS_ini.Fields(iLoop).Name & "</TD>"
'
Next
Response.Write "<TR>"
End If
For iLoop = 0 to objRS_ini.Fields.Count - 1
Response.Write "<TD>" & objRS_ini.Fields(iLoop).Value & "</TD>"
Next
Response.Write "</TR>"
'
objRS_ini.MoveNext
Loop
Response.Write "</TABLE></p>"
'
objRS_ini.Close : objRS_ris.Close
Set objRS_ini = Nothing : set objRS_ris = Nothing : Set objConn = Nothing
Set fs = nothing : Set folder = nothing
'
%>
</BODY>
Grazie mille in anticipo per l' aiuto !!

Rispondi quotando
