Я пытаюсь написать следующий SQL-запрос в C# с помощью LINQ, какой лучший подход получить тот же результат?SQL to linq having Clause
SELECT [t1].[JOB]
FROM (
SELECT COUNT(*) AS [value], [t0].[JOB], [t0].[LINK], [t0].[PREFIX]
FROM [dbo].[LABELS] AS [t0]
GROUP BY [t0].[JOB], [t0].[LINK], [t0].[PREFIX]
HAVING [t0].[PREFIX] = 'B' AND [t0].[LINK] != 0
) AS [t1]
GROUP BY [t1].[JOB], [t1].[value]
HAVING [t1].[value] > 1
Этикетки должны быть уникальными в полях JOB и LINK, комбинация никогда не должна повторяться. Этот запрос проверяет, какие JOBs нарушают это правило
Редактировать: Мой LINQ по запросу не дает ожидаемого результата.
dbP.PackagingLabels.GroupBy(l => new {l.JOB, l.LINK, l.PREFIX})
.Where(g => g.Select(e => e.PREFIX != "B" && e.LINK != 0).Count() > 1)
.Select(g => g.Key.JOB);
Что вы пытались сделать до сих пор, чтобы решить эту проблему, и какие у вас проблемы с вашим решением? – Servy
Хотя хорошо, что вы предоставили нам SQL для справки, нам также нужно знать, что у вас есть в LINQ, и посмотреть, где именно вы застреваете. – user2366842
Все, что содержится во внутреннем разделе 'HAVING', принадлежит вместо предложения where. – AaronLS