Salve a tutti, avrei bisogno delle vostre indicazioni perchè sono alle prese con la realizzazione di quanto segue:
- seleziono dalla tabella uno con una query una serie di record con certe condizioni prelevate da un form;
- confronto il campo X della tabella numero uno con il campo X della tabella due di riferimento;
- se tutti i valori X della tabella uno sono inferiori a quelli di riferimento scrivo con una query su una terza tabella;
- se almeno uno dei valori X della tabella uno è superiore a quelli di riferimento avvio un secondo confronto i cui risultati scrivo con una query su una terza tabella.
Ho buttato giù qualcosa, ma non ne sono convinto al 100%:vi sembra corretto?codice:<% Function ConvertiData(data) giorno = Mid(data, InStr(1, data, "/") + 1, InStrRev(data, "/") - InStr(1, data, "/") - 1) mese = Left(data, InStr(1, data, "/") - 1) anno = Right(data, Len(data) - InStrRev(data, "/")) ConvertiData = giorno & "/" & mese & "/" & anno End Function blc = Request.form("rsi") funzionesplit = split(blc, "-") blc0 = funzionesplit(0) blc1 = funzionesplit(1) Set cn = Server.CreateObject("ADODB.Connection") Open = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("generale.mdb") cn.open Open Set recordset = Server.CreateObject("ADODB.Recordset") 'seleziono dalla tabella uno con una query una serie di record con certe condizioni prelevate da un form; strSQL = "SELECT * FROM tabellauno WHERE id_rs = "&blc0&" and durata IS NULL" recordset.Open strSQL, Open, 3, 3 'confronto il campo X della tabella numero uno con il campo X della tabella due di riferimento; If recordset.Eof then response.write "NON CI SONO RECORD DA ANALIZZARE" Else Do while (Not recordset.Eof) variabile = 0 SQLDown = "SELECT CO_PPM, CO2_PPM, H2_PPM, CH4_PPM, C2H6_PPM, C2H4_PPM, C2H2_PPM, CONTENUTO_ACQUA_PPM FROM percentili" Set recdown = cn.Execute(SQLDown) strSQL = "SELECT CO_PPM, CO2_PPM, H2_PPM, CH4_PPM, C2H6_PPM, C2H4_PPM, C2H2_PPM, CONTENUTO_ACQUA_PPM FROM tabellauno WHERE id_rs="&blc0 Set rec = cn.Execute(strSQL) IF REC("CO_PPM") < RECDown("CO_PPM") then response.write "co " ELSE variabile = variabile+1 END IF IF REC("CO2_PPM") < RECDown("CO2_PPM") then response.write "co2 " ELSE variabile = variabile+1 END IF recordset.Movenext Loop 'se almeno uno dei valori X della tabella uno è superiore a quelli di riferimento avvio un secondo confronto i cui risultati scrivo con una query su una terza tabella. if variabile > 0 then SQL = "SELECT C2H2_C2H4_PPM, CH4_H2_PPM, C2H4_C2H6_PPM FROM DGA" Set RECDown=cn.Execute(SQL) SQLDown = "SELECT C2H2_C2H4_PPM, CH4_H2_PPM, C2H4_C2H6_PPM FROM tabellauno WHERE id_rs="&blc0 Set REC=cn.Execute(SQLDown) strSQL = "SELECT * FROM tabellauno WHERE id_rs="&blc0 Set strREC=cn.Execute(strSQL) strSQL1 = "SELECT * FROM Percentili" Set strREC1=cn.Execute(strSQL1) If recordset.Eof then response.write "NON CI SONO RECORD DA ANALIZZARE" Else Do while (Not recordset.Eof) IF REC("CH4_H2_PPM") < 0.1 AND REC("C2H4_C2H6_PPM") < 0.2 then ... end if IF REC("C2H2_C2H4_PPM") > 0.6 AND REC("C2H2_C2H4_PPM") < 2.5 AND REC("CH4_H2_PPM") > 0.1 AND REC("CH4_H2_PPM") < 1 AND REC("C2H4_C2H6_PPM") > 2 then ... set RECDown = cn.execute(sql) else IF REC("C2H2_C2H4_PPM") > 1 AND REC("CH4_H2_PPM") > 0.1 AND REC("CH4_H2_PPM") < 0.5 AND REC("C2H4_C2H6_PPM") > 1 ... end if end if IF REC("CH4_H2_PPM") > 1 AND REC("C2H4_C2H6_PPM") < 1 then .... end if IF REC("C2H2_C2H4_PPM") < 0.1 AND REC("CH4_H2_PPM") > 1 AND REC("C2H4_C2H6_PPM") > 1 AND REC("C2H4_C2H6_PPM") < 4 then ... end if IF REC("C2H2_C2H4_PPM") < 0.2 AND REC("CH4_H2_PPM") > 1 AND REC("C2H4_C2H6_PPM") > 4 then ... end if if variabile = 0 then ... end if recordset.Movenext Loop end if else strSQL = "SELECT * FROM tabellauno WHERE id_rs="&blc0 Set strREC=cn.Execute(strSQL) data = ConvertiData(CStr(strREC("data_prelievo"))) SQL = "INSERT INTO .... sSQL = "UPDATE tabellauno set durata = 'ok' WHERE id_rs = "&blc0 Set oRs = cn.Execute(sSQL) end if recordset.Close Set recordset = Nothing cn.Close Set cn = Nothing end if %>![]()

Rispondi quotando
