c# - sql to linq and 2 query into 1
问题描述
再会。我有 2 个请求。
SELECT cf.Conf_StartTime, cf.Conf_DisplayName, eve.Conf_ID, eve.Party_ID, eve.Point_NAME, eve.Ongoing_ID, COUNT(*) AS 'num'
FROM CDR_EVENT as eve INNER JOIN CDR_Conference as cf ON eve.Conf_ID = cf.Conf_ID
WHERE TIMESTAMP >= '9/10/2020' AND TIMESTAMP <= '9/11/2020' AND Ongoing_ID IS NOT NULL
GROUP BY
cf.Conf_StartTime, cf.Conf_DisplayName, eve.Conf_ID, eve.Party_ID, eve.Point_NAME, eve.Ongoing_ID
HAVING COUNT (*) >= 2
ORDER BY eve.Conf_ID
GO
SELECT cf.Conf_StartTime, cf.Conf_DisplayName, eve.Conf_ID, eve.Party_ID, eve.Point_NAME, eve.Disconnect_Cause_DESCRIPTION, COUNT(*) AS 'num'
FROM CDR_EVENT as eve INNER JOIN CDR_Conference as cf ON eve.Conf_ID = cf.Conf_ID
WHERE TIMESTAMP >= '9/10/2020' AND TIMESTAMP <= '9/11/2020' AND Disconnect_Cause_DESCRIPTION IS NOT NULL AND Disconnect_Cause_ID != '2'
GROUP BY
cf.Conf_StartTime, cf.Conf_DisplayName, eve.Conf_ID, eve.Party_ID, eve.Point_NAME, Disconnect_Cause_DESCRIPTION
HAVING COUNT (*) >= 1
ORDER BY cf.Conf_DisplayName
问题 1. 如何将它们转换为 LINQ?
问题 2. 是否可以将这两个查询合二为一?
解决方案
我想我能够转换为 LINQ,结果并不难。问题#2仍然有效:)
var obj = from cdr in dataContext.CDR_EVENT
where (cdr.TIMESTAMP.Date >= dTimeStart.Date && cdr.TIMESTAMP.Date <= dTimeEnd.Date &&
cdr.Ongoing_ID != null)
group (cdr) by new {cdr.Conf_ID, cdr.Party_ID,cdr.Ongoing_ID, cdr.Point_NAME } into g
where g.Count() >=2
orderby g.Key.Party_ID
select new
{
s1 = g.Key.Conf_ID,
s2 = g.Key.Party_ID,
s3 = g.Key.Ongoing_ID,
s4 = g.Key.Point_NAME,
s5 = g.Count()
};
推荐阅读
- javascript - 如何在python的while循环中运行命令行
- java - 如何使用 Jackson 在 JSON Schema 中显示默认值
- django - django-simple-history 存储更改两次
- java - 在容器启动时启动的 Docker 文件中添加脚本
- android - 我想将 chrome 自定义选项卡添加到我的应用程序如果用户没有安装 chrome 怎么办
- r - 使用 fread(加载)和 write.csv 的文件大小问题。写入阶段从 20GB 到 > 60GB
- angular - 在 Ionic 应用程序中从模式导航到页面时如何更新数组?
- kotlin - Enum::valueOf 在哪里定义?
- c - 使用 void 指针:0xC0000005:访问冲突读取位置
- c - CS50 Pset2 可读性中的错误输出