在我的查询中,我能够成功地提取大量数据,但是,如果我能够深入到只选择数据集的第一个项目开始日期,这将是非常有帮助的。
我试着在我的查询中添加一个(MIN),但它出错了,有什么建议吗?
为了澄清,我希望选择一个特定的合同的第一个项目开始日期。任何合同都可以有(n)个项目。我的目标是检测出其中的第一个。
下面是我的问题:
SELECT DISTINCT CONT.CONTRACTNUMBER as "Contract Number",
CS.PRODUCTID as "Product ID",
PROJ.PROJECTID as "Project ID",
PR.PRODDESCRIPTION as "Product Description",
PROJ.PROJECTNAME as "Project Name",
CS.STARTDT as "Contract Service/ Product Start DT",
CONT.CONTRACTStartDT as "Contract Start DT",
PROJ.PROJECTSTARTDT as "Project Start DT",
Datediff(DAY, CS.STARTDT, PROJ.PROJECTSTARTDT) as "# Day Difference"
FROM PRODUCTDATA.DBO.HHCONTRACTSERVICE CS WITH(NOLOCK)
LEFT OUTER JOIN COSTTRACKERDATA.DBO.OAPROJECT PROJ WITH(NOLOCK)
ON CS.DID = PROJ.EXTERNALID
LEFT OUTER JOIN PRODUCTDATA.DBO.HHCONTRACT CONT WITH(NOLOCK)
ON CS.CONTRACTDID = CONT.DID
LEFT OUTER JOIN FIGURES..DIMPRODUCT PR WITH(NOLOCK)
ON CS.PRODUCTID = PR.PRODUCTID
AND PR.SUBPRODUCTLINE IN ( 'S', 'S' )
WHERE CS.STARTDT BETWEEN '2020-01-01' AND '2021-11-11'
AND PROJ.PROJECTSTARTDT <> '1970-01-01 00:00:00.000'
order by [Contract Number], [Project Start DT]发布于 2021-11-26 14:21:33
是列表中的第一个日期还是列表中的最早日期?
无论哪种方式,您都可以按您想要的方式对列表进行排序,并在末尾添加limit 1。这将只给你第一行。
在SELECT语句中使用LIMIT子句来限制要返回的行数。
https://stackoverflow.com/questions/70125824
复制相似问题