Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    165

    [sql S.2005] Select Con Varie Condizioni

    Ciao a tutti,

    Vi ringrazio in anticipo perche so che mi saprete aiutare

    Il mio problema è questo;

    Devo eseguire una select con varie condizioni: in particolare questa qui sotto:
    codice:
    SELECT *
            FROM Gest_rapp
            WHERE data >= 'da'
            AND data <= 'a' OR (Tipo_lavoro = 'cbo_tip.Text' OR Tipo_lavoro IS NULL) OR 
            (N_rapp = 'cbo_num(0).Text' OR N_rapp IS NULL) OR 
            (Cliente = 'cbo_cli(0).Text' OR N_rapp IS NULL) 
            AND id_ute = ute
    Spiego meglio: ho questi campi di ricerca (che possono essere vuoti oppure inizializzati)

    da data
    a data
    tipo lavoro
    numero rapportino
    cliente
    id utente (che puo essere o no eseguito) in base all'utente che si è loggato al programma

    Problema:

    Secondo voi c è qualche errore nella select??? perche non mi esegue l'ultimo "AND" restituendomi un risultato sbagliato.


  2. #2
    se la query è lanciata così come è scritta NON può funzionare... immagino che al posto dei vari 'da', 'a', ecc ci siano altre cose.

    vedo un 'cbo_num(0).Text' : la query la crei in vb?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    165
    Ciao,

    Grazie tante per la risposta,

    si scusami ovviamente al posto di quelle variabili o text ci sono dei valori
    numerici o alfanumerici a seconda del campo sul db

    Si la query la eseguo in vb6

    Vedi qualche errore te???

  4. #4
    fa' vedere il codice vb6

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    165
    Ciao e grazie ancora del tuo aiuto,

    il codice è questo

    codice:
    sSql = ""
                sSql = sSql & "SELECT *" & vbCrLf
                sSql = sSql & "FROM Gest_rapp" & vbCrLf
                sSql = sSql & "WHERE data >= '" & da & "' AND "
                sSql = sSql & "data <= '" & a & "' OR "
                sSql = sSql & "(Tipo_lavoro = '" & cbo_tip.Text & "' OR Tipo_lavoro IS NULL) OR "
                sSql = sSql & "(N_rapp = '" & cbo_num(0).Text & "' OR N_rapp IS NULL) OR "
                sSql = sSql & "(Cliente = '" & cbo_cli(0).Text & "' OR N_rapp IS NULL) "
                If ty_ute <> "Amministratore" Then
                        sSql = sSql & "AND id_ute = " & ute
                End If
    fammi sapere


  6. #6
    metti un breakpoint dopo quelle istruzioni, fatti stampare il valore della variabile sSql e posta il risultato

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    165
    questo è il risultato della query

    codice:
    SELECT *
    FROM Gest_rapp
    WHERE data >= '2009-11-28' 
    AND data <= '2010-03-30' 
    OR (tipo_lavoro = " OR tipo_lavoro IS NULL) 
    OR (N_rapp = " OR N_rapp IS NULL) 
    OR (Cliente = " OR N_rapp IS NULL)
    AND id_ute = 2
    Apparentemente giusto perche id_ute = 2 quindi il mio secondo utente che non è amministratore e puo vedere solo i suoi interventi tecnici e non tutti mentre la tabella mi mostra tutti gli interventi.

    Dove sbaglio

    GRAZIE ANCORA

  8. #8
    sono le OR che ti sballano tutto. probabilmente è giusta questa

    SELECT *
    FROM Gest_rapp
    WHERE data >= '2009-11-28'
    AND data <= '2010-03-30'
    AND (tipo_lavoro = " OR tipo_lavoro IS NULL)
    AND (N_rapp = " OR N_rapp IS NULL)
    AND (Cliente = " OR Cliente IS NULL)
    AND id_ute = 2

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    165
    e molto probabilmente hai anche ragione

    sei un grande

    Provo e poi ti faccio sapere

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    165


    Ho provato e con gli AND mi da questo errore:


    Errore di run-time '3021'

    Il record corrente corrisponde all'inizio o alla fine del file........

    Però ci sono record che soddisfano la select (Però con gli OR e non con gli AND)

    Mi spiego meglio:

    Io ho diversi campi di ricerca, ed è l utente che deve decidere se ricercare anche per esempio per (Tipo lavoro o per Cliente) piuttosto che Da data a data.

    I campi Cliente e Tipo lavoro possono risultare anche vuoti e quindi effettuare una select solo "Da data a data"

    Credimi non so che pesci prendere

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.