Instruction SQL utilisant la clause Where avec plusieurs valeurs

Translate

J'ai une table qui a plusieurs lignes avec les champs suivants:

PersonName SongName Status

Je veux utiliser des noms sélectionnés dans une zone de liste à sélection multiple, dont je peux récupérer les valeurs, puis faire une clause where afin qu'elle affiche les noms de chansons que les personnes sélectionnées peuvent toutes jouer, le statut est donc complet.

Par exemple:

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

Si je sélectionne Holly et Ryan dans la zone de liste et que j'appuie sur le bouton, la requête doit simplement afficher Highland car c'est ce qu'ils savent tous les deux.

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

Toutes les réponses

Translate

Essaye ça:

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

Le nombre dans l'avoir doit correspondre au nombre de personnes. Si vous avez également besoin que le statut soitCompleteutilisez ceciwhereclause au lieu de la précédente:

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

Si vous utilisez une procédure stockée paramétrée:

  1. Passer dans une chaîne séparée par des virgules
  2. Utilisez une fonction spéciale pour diviser la chaîne séparée par des virgules en variable de valeur de table
  3. UtilisationINNER JOIN ON t.PersonName = newTable.PersonNameen utilisant une variable de table qui contient des noms passés
La source
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')
La source
Leave a Reply
You must be logged in to post a answer.
A propos de l'auteur