sql - DATEDIFF 函数返回 2 行
问题描述
我有正常工作的查询,我得到以下输出:
9 1116 JOHN 0590056093 9106809105 3 A NULL D
9 1117 SARA 0015562451 9203410410 3 A NULL D
9 1118 DAVID 5560101753 9375115360 3 B NULL D
添加datediff
列后,我的输出如下
9 1116 JOHN 0590056093 9106809105 3 A NULL D 10
9 1116 JOHN 0590056093 9106809105 3 A NULL D 1
9 1117 SARA 0015562451 9203410410 3 A NULL D 10
9 1117 SARA 0015562451 9203410410 3 A NULL D 1
9 1118 DAVID 5560101753 9375115360 3 B NULL D 10
9 1118 DAVID 5560101753 9375115360 3 B NULL D 1
列中显示 1 的原因是什么datediff
?
询问 :
select distinct t1.*, fs.Name+' '+ed.Academic as takhasos, Articles.Title, MT.Name as paye,
datediff(m,Projects.StartDateProject, Projects.EndDateProject) as datedif
from
(select RC.ID, RCU.UserID, u.Name + ' ' + u.Family AS NameFamily, u.UserName, u.Mobile, u.Email, groupED.IdMaghtae
from ResearchersCores AS RC LEFT OUTER JOIN
ResearchersCoreUsers AS RCU ON RC.ID = RCU.ResearchersCoreID LEFT OUTER JOIN
Users AS u ON u.Id = RCU.UserID LEFT OUTER JOIN
(SELECT Eductionals.UserID , Max(Eductionals.MaghtaeID) AS IdMaghtae
FROM Eductionals
GROUP BY Eductionals.UserID) groupED
ON u.Id = groupED.UserID
WHERE (RC.IsEnable = 1) AND (RCU.isEnable = 1) AND (RCU.RoleID = 5) ) t1 left outer join
Eductionals as ED ON ED.UserID = t1.UserID AND t1.IdMaghtae = ed.MaghtaeID left outer join
FieldStudies as FS ON ed.FieldStudy_ID = FS.ID left outer join
Articles ON Articles.UserID = t1.UserID left outer join
Projects ON Projects.RecordID = t1.ID and Projects.ControllerID = 8 left outer join
MaghtaeTahsilis MT On MT.ID = t1.IdMaghtae
where t1.id = 9
我想要以下输出
9 1116 JOHN 0590056093 9106809105 3 A NULL D 10
9 1117 SARA 0015562451 9203410410 3 A NULL D 10
9 1118 DAVID 5560101753 9375115360 3 B NULL D 10
解决方案
您的查询用于distinct
删除重复的行。但是您添加的表达式在这些否则重复的行上具有不同的值,因此它们现在显示在结果集中。
一种选择是改用group by
datediff max()
。这要求select
您在子句中重复该子句中的所有其他列group by
:
select
t1.col1,
t1.col2,
...,
max(datediff(m,Projects.StartDateProject, Projects.EndDateProject)) as datedif
from ...
where t1.id = 9
group by t1.col1, t1.col2, ...
推荐阅读
- rust - 从行迭代器构建 Hashset
- sql - Tableau 自定义 SQL 未按预期工作
- haskell - 为什么在自定义任意实例 Haskell 的 QuickCheck 中不调用“收缩”?
- lookup - 如何在数组中使用 JSONata $lookup()?
- javascript - Dropzone缩略图生成
- python - 在 jupyter notebook 上使用逐行运行和注释
- html - 如何使三个容器以相同的大小增长
- javascript - 将项目添加到 dom 需要点击而不是反应?
- android - 使用麦克风检测其他应用程序 android
- r - 如何使列名成为数据框中的实际列