【发布时间】:2016-01-25 21:52:19
【问题描述】:
我有一条 sql 语句需要修改为任何正确形式的 Linq(查询语法和/或 lambda)——任何想法都将不胜感激:
SELECT DISTINCT
CUSTOMER_NUM, CUSTOMER_NAME,
COUNT(*) AS 'COUNT',
SUM(CASE WHEN State = 'State1' THEN 1 ELSE 0 END) AS 'State1Count',
SUM(CASE WHEN State = 'State2' THEN 1 ELSE 0 END) AS 'State2Count',
ISNULL(SUM(USD_TOTAL_MRC_AMT), 0) AS 'USD_TOTAL_MRC_AMT_SUM'
FROM Table1
WHERE
(
USERID = @UserId //@UserId is a parameter passed into the stored procedure
)
GROUP BY CUSTOMER_NUM, CUSTOMER_NAME
ORDER BY
CUSTOMER_NAME
以下是我迄今为止在 LinqPad 中所做的工作:
Table1.GroupBy(i => 1).Select(g => new {
Total = g.Count(i => i.State == "AM Re-Rate Pool" || i.State == "AM Renewal Pool"),
ReRates = g.Count(i => i.State == "State1"),
Renewals = g.Count(i => i.State == "State2
});
谢谢!
【问题讨论】:
-
您对哪一部分有问题?
-
仅供参考,它被称为方法语法,而不是 lambda。
-
尚未成功添加到分组中的 CUSTOMER_NUM 和 CUSTOMER_NAME
-
结果应如下所示:CUSTOMER_NAME CUSTOMER_NUMBER, TOTAL, State1, State2 john doe 3 10 2 8 jane doe 4 15 5 10
标签: c# .net sql-server linq