Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Query SQL

  1. #1

    Query SQL

    Premetto ke è la prima volta che mi addentro nella creazione manuale di Query...

    Io ho una cosa del genere:

    codice:
    SELECT *
    FROM Contenuti
    WHERE Nome = 'Parametro che immette l'utente' AND SottoCat = 'Sottocategoria che immette l'utente'
    Fin qui tutto ok... Se l'utente da entrambi gli input funziona perfettamente, ma se uno dei 2 input viene lasciato in bianco la query prende come parametro un Parametro Predefinito assegnato da me. Quindi fa finta che l'utente abbia inserito comunque un input e non visualizza niente. Invece io devo far in modo che lasciando in bianco uno dei 2 campi SQL capisca che non deve filtrare x quel campo.

    Come si fa?

    Grazie

  2. #2

    Re: Query SQL

    Originariamente inviato da romaexperience
    Premetto ke è la prima volta che mi addentro nella creazione manuale di Query...

    Io ho una cosa del genere:

    codice:
    SELECT *
    FROM Contenuti
    WHERE Nome = 'Parametro che immette l'utente' AND SottoCat = 'Sottocategoria che immette l'utente'
    Fin qui tutto ok... Se l'utente da entrambi gli input funziona perfettamente, ma se uno dei 2 input viene lasciato in bianco la query prende come parametro un Parametro Predefinito assegnato da me. Quindi fa finta che l'utente abbia inserito comunque un input e non visualizza niente. Invece io devo far in modo che lasciando in bianco uno dei 2 campi SQL capisca che non deve filtrare x quel campo.

    Come si fa?

    Grazie
    E se uno non inserisce nessun campo?
    Così come l'hai spiegata tu si risolve:

    codice:
    SELECT *
    FROM Contenuti
    WHERE (Nome = 'Parametro che immette l'utente' OR Nome = '') AND (SottoCat = 'Sottocategoria che immette l'utente' OR Nome = '')
    ma in questo modo se l'utente non inserisce campi sui quali filtrare ti annulla completamente la WHERE...
    Sono fermamente convinto che sia possibile fare ogni cosa. Tutto sta a capire come.

  3. #3
    Scusa per l'omissione di INFO..

    Se uno non inserisce nessun campo mi deve restituire TUTTI i Prodotti

  4. #4
    mmmm mi da nessun dato così come hai detto tu:

    SELECT *
    FROM Contenuti
    WHERE (Nome = 'MMColParam' OR Nome = '') AND (SottoCat = 'MMColParam2' OR SottoCat = '')

  5. #5
    sql = "select * from tabella"
    if campo <> "" then
    sql = sql & " where ...."
    if campo1 <> "" then
    sql = sql & " and/or campo...."
    end if
    elseif campo1 <> "" then
    sql = sql & " where campo1...."
    end if

    rs.open sql....



    in questo modo credo che tu possa gestire al meglio le varie clausule...
    non ho mai provato il altri modi...
    Ah, Jedis! I had no ideas! What can i do for you, honored Jedis?

    I'm not Jedi. I'm a guy with a lighsaber and a few questions.

  6. #6
    Originariamente inviato da romaexperience
    mmmm mi da nessun dato così come hai detto tu:

    SELECT *
    FROM Contenuti
    WHERE (Nome = 'MMColParam' OR Nome = '') AND (SottoCat = 'MMColParam2' OR SottoCat = '')
    Sì, hai ragione, al posto di Nome = '' avrei dovuto scrivere Nome <> ''

    Lapsus, sorry...
    Sono fermamente convinto che sia possibile fare ogni cosa. Tutto sta a capire come.

  7. #7
    Non è stato possibile risolverlo a monte con una sola query, si incorreva in errori logici cmq la soluzione era semplicissima e lo spunto me l'ha dato Killar99....

    Ho semplicemente messo mano con degli IF al codice che genera il RecordSet facendo generare ben 4 query a seconda del Caso:

    a) 2 Campi Pieni

    b) 2 Campi Vuoti

    c) 1° Pieno e 2° Vuoto

    d) 1° Vuoto e 2° Pieno

    codice:
    If Risultati__MMColParam <> "0" AND Risultati__MMColParam2 <> "0" Then
    Risultati.Source = "SELECT *  FROM Contenuti  WHERE Nome = '" + Replace(Risultati__MMColParam, "'", "''") + "' AND SottoCat = '" + Replace(Risultati__MMColParam2, "'", "''") + "'  ORDER BY Nome ASC"
    End If
    
    If Risultati__MMColParam <> "0" AND Risultati__MMColParam2 = "0" Then
    Risultati.Source = "SELECT *  FROM Contenuti  WHERE Nome = '" + Replace(Risultati__MMColParam, "'", "''") + "'  ORDER BY Nome ASC"
    End If
    
    If Risultati__MMColParam = "0" AND Risultati__MMColParam2 <> "0" Then
    Risultati.Source = "SELECT *  FROM Contenuti  WHERE SottoCat = '" + Replace(Risultati__MMColParam2, "'", "''") + "'  ORDER BY Nome ASC"
    End If
    
    If Risultati__MMColParam = "0" AND Risultati__MMColParam2 = "0" Then
    Risultati.Source = "SELECT *  FROM Contenuti ORDER BY Nome ASC"
    End If
    Grazie a Tutti per l'aiuto!!

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.