Originariamente inviata da
marocco82
Salve a tutti,
ho un db access con due tabelle (clienti e ore_mese) così composte:
clienti
id |
operatore |
inserito |
1 |
pinco pallo |
Ok |
2 |
tizio caio |
Ok |
4 |
pinco pallo |
Ok |
5 |
pinco pallo |
Ko |
ore_mese
id |
operatore |
ore |
1 |
pinco pallo |
32 |
2 |
pippo pluto |
0 |
3 |
tizio caio |
15 |
Vorrei visualizzare una colonna con la lista di tutti gli operatori della tabella ore_mese con le rispettive ore nella colonna successiva e, nella colonna di seguito, il conteggio degli "Ok" contenuti nel campo "inserito".
ES.
operatore |
ore |
inserito Ok |
pinco pallo |
32 |
2 |
pippo pluto |
0 |
0 |
tizio caio |
15 |
1 |
Ho fatto decine di tentativi con il JOIN tra le due tabelle prendendo in considerazione, come chiave primaria, il campo operatore ma non riesco a visualizzare più di un operatore.
Di seguito il codice:
codice:
sql = "SELECT ore_mese.operatore, ore_mese.ore, COUNT (clienti.inserito) AS quanti FROM ore_mese INNER JOIN clienti ON clienti.operatore=ore_mese.operatore WHERE clienti.inserito='Ok' GROUP BY ore_mese.operatore, ore_mese.ore"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3
if not rs.EOF then
do while not(rs.eof)
Sicuramente non ho ben chiara la sintassi del JOIN.
Potreste darmi una mano?
Grazie a tutti.
ciao
io farei nel modo seguente
durante il ciclo di lettura aprirei un recordset temporaneo per eseguire il conteggio
faccio un esempio postando il codice che farei io...
codice:
dim sql,sql1,inseriti
Set rs = Server.CreateObject("ADODB.Recordset")
Set rs1 = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3
if not rs.EOF then
do until rs.eof
sql1="SELECT count(*) as inseritoOK from Clienti where operatore='" & rs("operatore") & " and inserito='ok'; "
rs1.open sql1,conn, 3, 3
inseriti=rs1("inseritoOK")
rs1.Close
' ....facci quello che vuoi tabella, etc etc
response.write("operatore:" & rs("operatore") & ", ore: " & rs("ore") & ", inseriti:" & inseriti)
rs.movenext
loop
end if
rs.close
mi sembra piu semplice che impelagarsi in un join che non è fatto per questo scopo...
ciao