Оператор SQL с использованием предложения Where с несколькими значениями

Translate

У меня есть таблица с несколькими строками со следующими полями:

PersonName SongName Status

Я хочу использовать имена, выбранные из списка с множественным выбором, из которого я могу получить значения, а затем сделать предложение where, чтобы оно показывало имена песен, которые могут воспроизводить все выбранные люди, поэтому статус завершен.

Например:

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

Если я выберу Холли и Райан из списка и нажму кнопку, запрос должен просто показать Хайленд, поскольку это то, что они оба знают.

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

Все ответы

Translate

Попробуй это:

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

Количество в доме должно соответствовать количеству людей. Если вам также нужно, чтобы Статус былCompleteиспользовать этотwhereпредложение вместо предыдущего:

where personName in ('Ryan', 'Holly') and status = 'Complete'
Источник
sll
Translate
SELECT PersonName, songName, status
FROM table
WHERE name IN ('Holly', 'Ryan')

Если вы используете параметризованную хранимую процедуру:

  1. Передайте строку, разделенную запятыми
  2. Используйте специальную функцию для разделения строки, разделенной запятыми, на переменную значения таблицы
  3. ИспользоватьINNER JOIN ON t.PersonName = newTable.PersonNameс использованием табличной переменной, которая содержит переданные имена
Источник
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')
Источник
Leave a Reply
You must be logged in to post a answer.
Об авторе