2

这个 SQL 查询在 Linq 中的正确语法让我望而却步。我将不胜感激。

SQL:

SELECT TOP 1 posdate 
FROM   dailypos 
GROUP  BY posdate 
HAVING Count(DISTINCT customernumber) = 3 
ORDER  BY posdate DESC) 

本质上,我从 3 个不同的客户那里获取文件,我需要一种快速的方法来确定我从所有 3 个客户那里获得数据的最近日期。我愿意采用不同的方法,但是这个 SQL 可以满足我的需要。

我可以做组,但我不知道如何处理第 4 行 (HAVING Count(Distinct...))

提前致谢。

4

1 回答 1

2

尝试这样的事情:

var result = context.dailypos
    .GroupBy(x => x.posdate)
    .Where(g => g.Select(x => x.customernumber).Distinct().Count() == 3)
    .Select(g => g.Key)
    .OrderByDescending(x => x)
    .Take(1);
于 2012-08-08T23:03:11.390 回答