Visualizzazione dei risultati da 1 a 3 su 3

Discussione: doppia sql

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    395

    doppia sql

    buonasera.
    ho le seguenti sql provate e funzionanti in access:

    4giri:
    SELECT Giri.CodiceGara, Giri.CodiceGiocatore, Giri.Giro, Giri.NumeroColpi
    FROM Giri
    GROUP BY Giri.CodiceGara, Giri.CodiceGiocatore, Giri.Giro, Giri.NumeroColpi
    HAVING (((Giri.CodiceGara)=17) AND ((Giri.Giro)<=4))
    ORDER BY Giri.CodiceGiocatore;

    4giritotale:
    SELECT [4giri].CodiceGara, [4giri].CodiceGiocatore, Sum([4giri].NumeroColpi) AS SommaDiNumeroColpi
    FROM 4giri
    GROUP BY [4giri].CodiceGara, [4giri].CodiceGiocatore
    HAVING ((([4giri].CodiceGara)=17))
    ORDER BY [4giri].CodiceGiocatore;


    la seconda sql riprende (come si può notare) la prima sql.

    ora come la trasformo in asp??

    ho provato con
    codice:
    SQL = " SELECT Giri.CodiceGara, Giri.CodiceGiocatore, Giri.Giro, Giri.NumeroColpi "
    SQL = SQL & " FROM Giri "
    SQL = SQL & " where CodiceGara = " & Request.QueryString("Cod")
    SQL = SQL & " and CodiceGiocatore = '" & par("CodiceGiocatore") & "'"
    SQL = SQL & " and Giri.Giro <= 4 "
    SQL = SQL & " GROUP BY Giri.CodiceGara, Giri.CodiceGiocatore, Giri.Giro, giri.numerocolpi "
    SQL = SQL & " ORDER BY Giri.CodiceGiocatore "
    
    	Set scostam = Server.CreateObject("ADODB.Recordset")
    	scostam.open SQL,Conn,3,1
    
    
    SQL2 = " SELECT [scostam].CodiceGara, [scostam].CodiceGiocatore, Sum([scostam].NumeroColpi) AS Somma "
    SQL2 = SQL2 & " FROM [scostam] "
    SQL2 = SQL2 & " GROUP BY [scostam].CodiceGara, [scostam].CodiceGiocatore "
    SQL2 = SQL2 & " HAVING ((([scostam].CodiceGara)=17)) "
    SQL2 = SQL2 & " ORDER BY [scostam].CodiceGiocatore "
    
    	Set scostam2 = Server.CreateObject("ADODB.Recordset")
    	scostam2.open SQL2,Conn,3,1
    ma purtroppo non funziona. Mi da errore:
    Il modulo di gestione di database Microsoft Jet non è in grado di trovare la tabella o la query di input 'scostam'. Verificare che esista e che il nome sia stato digitato correttamente

    spero possiate darmi una dritta!!

    grazie mille

  2. #2
    questa la teoria

    codice:
    SELECT elenco_campi FROM (SELECT elenco_campi FROM tabella) WHERE ...
    la tua seconda query racchiude la tua prima query. quindi la tua prima query è quella in verde. mi sembra anche di ricordare che access vogli un alias si tabella dopo la parentesi di chiusura della query interna

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    395
    ho provato così:
    codice:
    SQL2 = " SELECT giri.CodiceGara, giri.CodiceGiocatore, giri.giro, Sum(giri.NumeroColpi) AS Somma "
    SQL2 = SQL2 & " FROM (SELECT Giri.CodiceGara, Giri.CodiceGiocatore, Giri.Giro, Giri.NumeroColpi "
    SQL2 = SQL2 & " FROM Giri "
    SQL2 = SQL2 & " where CodiceGara = " & Request.QueryString("Cod")
    SQL2 = SQL2 & " and CodiceGiocatore = '" & par("CodiceGiocatore") & "'"
    SQL2 = SQL2 & " and Giri.Giro <= 4 "
    SQL2 = SQL2 & " GROUP BY Giri.CodiceGara, Giri.CodiceGiocatore, Giri.Giro, giri.numerocolpi "
    SQL2 = SQL2 & " ORDER BY Giri.CodiceGiocatore) "
    SQL2 = SQL2 & " where CodiceGara = " & Request.QueryString("Cod")
    SQL2 = SQL2 & " and CodiceGiocatore = '" & par("CodiceGiocatore") & "'"
    SQL2 = SQL2 & " GROUP BY giri.CodiceGara, giri.CodiceGiocatore, giri.giro "
    SQL2 = SQL2 & " ORDER BY giri.CodiceGiocatore "
    
    	Set scostam2 = Server.CreateObject("ADODB.Recordset")
    	scostam2.open SQL2,Conn,3,1
    
    	if not scostam2.EOF then
    		while not scostam2.EOF
    
    response.write scostam2("codicegiocatore")&" - "&scostam2("giro")&" - "&scostam2("somma")&" 
    "
    response.flush
    
    			Scostam2.MoveNext
    		wend			
    	end if
    non funziona però correttamente perchè non fa la somma. mi visualizza codicegiocatore,giro,numerocolpi:

    I0018AA - 1 - 20
    I0018AA - 2 - 21
    I0018AA - 3 - 28
    I0018AA - 4 - 22

    che è quello che è salvato nel database. però io vorrei
    I0018AA - 91

    purtroppo nella tabella ci sono più giocatori e ci possono essere più di 4 giri è per quello che pensavo ad una doppia select che però quella che hai indicato non fa il totale.

    grazie!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.