Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Estrarre record ed ultima condizione

    Ciao a tutti, quesito:

    Con questa query faccio l'estrazione dei record di un dbase che corrispondono ad una cerca "condizione", richiesta con un form:
    codice:
    condizione = Request.querystring("condizione")
    
    if ucase(trim(condizione)) <> "TUTTE" then
    
    SQL = "select * From Analisi WHERE 1=1"
    
    If ucase(trim(condizione)) <> "TUTTE" then
       SQL = SQL & " AND condizione = '"& condizione &"' order id asc"
    End if
    
    Set REC = ConnDown.Execute(SQL)
    Questa estrazione però non tiene conto del fatto che nel dbase è registrata la storia di ogni record, che è una storia "dinamica" nel senso che la condizione di quel determinato record potrebbe passare da una "condizione A" (record più antico) ad una "condizione B" (record più recente).
    Ad esempio ho due record che riguardano lo stesso utente:

    record 1= utente pippo, 12/12/1999, condizione A
    record 2= utente pippo, 31/06/2004, condizione B

    L'estrazione che si vuole ottenere dovrebbe far vedere solo la condizione B del record perchè la più recente, mentre se il record è unico vedere la condizione attuale.

    Grazie.

  2. #2
    aggiungi TOP 1 e ORDER BY condizione DESC

  3. #3
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da optime
    aggiungi TOP 1 e ORDER BY condizione DESC
    grazie opt, ma:
    codice:
    SQL = "select TOP1 From Analisi WHERE 1=1"
    
    If ucase(trim(condizione)) <> "TUTTE" then
       SQL = SQL & " AND condizione = '"& condizione &"' order by condizione desc"
    End if
    
    Set REC = ConnDown.Execute(SQL)
    risponde con:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
    [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
    :master:

  4. #4
    fatti stampare la variabile SQL prima di eseguirla

  5. #5
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da optime
    fatti stampare la variabile SQL prima di eseguirla
    ecco:
    codice:
    select TOP1 From Analisi WHERE condizione = 'A' order by condizione asc

  6. #6
    VVoVe: TOP1? e lo spazio?

  7. #7
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da optime
    VVoVe: TOP1? e lo spazio?
    codice:
     select TOP 1 From Analisi WHERE condizione = 'A' order by condizione asc
    Error Type:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][ODBC Microsoft Access Driver] The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.

  8. #8
    SELECT TOP 1 elenco_campi ecc....

  9. #9
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    grazie, ma se ordino per "condizione" (come dovrebbe essere), mi restituisce solo il primo dei record della tabella, se ordino per "nome_utente" mi estrae tutti i record senza tener conto del TOP 1:
    codice:
     If ucase(trim(condizione)) <> "TUTTE" then
       SQL = "select TOP 1 nome_utente, condizione from analisi where condizione = '"& condizione &"' order by condizione asc"
    End if
    
    Set REC = ConnDown.Execute(SQL)
    
    if not rec.eof then 'il secondo è pieno
    While Not REC.EOF 'ciclo sul secondo recordset
    
    REC.movenext 
    wend
    end if
    REC.Close 
    Set REC = Nothing
    dove sbaglio?

  10. #10
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    .. forse non mi sono spiegato...

    il problema è il seguente:

    record 1= utente pippo, 12/12/1999, condizione A
    record 2= utente pippo, 31/06/2004, condizione B

    in questo caso, servirebbe estrarre con la query il record 2 quello più recente in cui l'utente "pippo" ha cambiato la condizione da "A" in "B".

    mi seguite? :rollo:

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.