Я получаю следующее сообщение об ошибке;Подзапрос возвратил более 1 значения, ошибка
Подзапрос возвратил более 1 значения. Это недопустимо, когда подзапрос следует =,! =, <, < =,>,> = или когда подзапрос используется как выражение.
Раздел кода, с которым у меня возникают проблемы, находится в моем заявлении выбора;
,(SELECT COUNT(sch.startdate)
FROM #test AS sch
WHERE L.Id = sch.id
GROUP BY sch.id, sch.startdate
HAVING sch.startdate >= L.T_Start AND sch.startdate <= @END) AS SC
В настоящее время он работает, если у человека только одна запись в тестовой таблице темпа, но разваливается, когда есть два. Я знаю, что могу использовать Top 1, чтобы ограничить его, но это не то, что я хочу. L
- это основной оператор select.
ИТАК таблица температуры имеет следующие данные:
ID startdate
1 2014-10-02
1 2014-11-02
2 2014-11-02
С ТОП 1 в моем коде я получаю результаты ниже:
ID ~Other Stuff~ SC
1 ~~~~~~~~~~~~~ 1
2 ~~~~~~~~~~~~~ 1
Но то, что я хочу быть возвращены:
ID ~Other Stuff~ SC
1 ~~~~~~~~~~~~~ 2
2 ~~~~~~~~~~~~~ 1
Как я могу изменить свой код, чтобы достичь этого?
Спасибо.
Чтобы получить хороший ответ, вам все равно нужно показать «основное» предложение 'from', а не просто подзапрос. Понятно, что вы хотите избавиться от 'group by' в подзапросе и использовать для предложения' where', чтобы по существу присоединиться к основному запросу с помощью строки 'where sch.id = main.id'. – tarheel