Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [SQL] Ricerca dati su più righe

    Salve,
    ho un problema in sql, che spiego meglio con un esempio:

    Ho una tabella di questo tipo

    TABELLA
    Schema - Componente - Valore

    In questa tabella Schema e Componente sono dei valori che
    si riferiscono all'ID di altre tabelle. Quindi potrei avere valori
    di questo tipo:

    TABELLA
    Schema - Componente - Valore
    1 - 2 - 10
    1 - 5 - 100
    1 - 6 - 100
    1 - 7 - 470
    2 - 5 - 200
    2 - 7 - 330
    2 - 9 - 10
    3 - 2 - 10
    3 - 4 - 20
    3 - 7 - 330

    Come faccio, ad esempio, a fare una select che mi permetta
    di conoscere tutti gli 'schemi' che hanno sia i 'componenti' 5
    che 7? (nell'esempio la select dovrebbe restituirmi 1 e 2)

    Grazie!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477
    Se cerchi la sintassi standard della clausola WHERE, che è la clausola che ti permette di definire la condizione da ricercare, è sufficiente legare le condizioni con un OR.

    codice:
    SELECT * FROM Tabella
    WHERE (Componente = 5) OR (Componente = 7)
    Se non è questo il tuo caso, specifica meglio cosa intendi.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Uhm... credo che non vada bene...

    Da quanto ho capito bisogna trovare gli schemi in cui siano presenti record che hanno il valore del componente = 5 oppure = 7 (ma devono essere presenti entrambi)
    Per questo, nell'esempio iniziale, solo gli schemi 1 e 2 soddisfano la condizione (entrambi hanno sia un record con componente = 5 che uno con componente = 7)

    Io proverei con

    codice:
    SELECT schema FROM Tabella 
    where componente = 5 and schema IN (SELECT schema FROM Tabella where componente = 7)

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    oppure
    codice:
    select distinct a.schema from tabella a, tabella b
    where
    a.componente = 5 and
    b.componente = 7 and
    a.schema = b.schema
    oppure
    codice:
    select distinct a.schema from tabella a
    where
    a.componente = 5 and
    exists (select * from tabella b
    b.componente = 7 and
    a.schema = b.schema)
    sicuramente esistono altri modi di ottenere il risultato desiderato.
    La scelta dipende dalla funzionalità che devi implementare e dalla numerosità e variabilità dei dati nella tua tabella
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477
    Originariamente inviato da comas17
    Uhm... credo che non vada bene...
    In effetti, leggendo la tua interpretazione, mi sono reso conto che forse non avevo compreso pienamente i termini del problema.

    Comunque, attendiamo un responso dall'autore della discussione per ulteriori lumi generali.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Grazie a tutti!

    Ora è tutto ok!

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.