SQL-Anweisung mit Where-Klausel mit mehreren Werten

Translate

Ich habe eine Tabelle mit mehreren Zeilen mit den folgenden Feldern:

PersonName SongName Status

Ich möchte Namen verwenden, die aus einem Mehrfachauswahl-Listenfeld ausgewählt wurden, in dem ich die Werte abrufen kann, und dann eine where-Klausel ausführen, damit die Songnamen angezeigt werden, die alle ausgewählten Personen spielen können. Daher ist der Status vollständig.

Zum Beispiel:

 PersonName      SongName    Status 
 Holly           Highland    Complete
 Holly           Mech        Complete 
 Ryan            Highland    Complete

Wenn ich Holly und Ryan aus dem Listenfeld auswähle und die Schaltfläche drücke, sollte in der Abfrage nur Highland angezeigt werden, da dies beide wissen.

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Versuche dies:

select songName from t
where personName in ('Ryan', 'Holly')
group by songName
having count(distinct personName) = 2

Die Anzahl der Personen sollte mit der Anzahl der Personen übereinstimmen. Wenn Sie auch den Status benötigenCompletebenutze daswhereKlausel anstelle der vorherigen:

where personName in ('Ryan', 'Holly') and status = 'Complete'
Quelle
sll
Translate
SELECT PersonName, songName, status
FROM table
WHERE name IN ('Holly', 'Ryan')

Wenn Sie eine parametrisierte gespeicherte Prozedur verwenden:

  1. Übergeben Sie eine durch Kommas getrennte Zeichenfolge
  2. Verwenden Sie eine spezielle Funktion, um durch Kommas getrennte Zeichenfolgen in Tabellenwertvariablen aufzuteilen
  3. VerwendenINNER JOIN ON t.PersonName = newTable.PersonNameVerwenden einer Tabellenvariablen, die übergebene Namen enthält
Quelle
Translate
Select t1.SongName
From tablename t1
left join tablename t2
 on t1.SongName = t2.SongName
    and t1.PersonName <> t2.PersonName
    and t1.Status = 'Complete' -- my assumption that this is necessary
    and t2.Status = 'Complete' -- my assumption that this is necessary
    and t1.PersonName IN ('Holly', 'Ryan')
    and t2.PersonName IN ('Holly', 'Ryan')
Quelle
Leave a Reply
You must be logged in to post a answer.
Über den Autor