我正在尝试订购此1日期列。我试图在子查询中以及在子查询之外对它进行排序,但没有任何工作。我错过了什么? "按e。[预测完成]排序"
SELECT DISTINCT
(
SELECT Convert(varchar(10), cast(e.[forecast finish] as date), 101)
FROM [CDW_CNA].[ssdv].[vw_OVP_Milestones] e
WHERE e.[Activity] like '4.7.%'
AND e.[job nbr] = c.[job nbr]
) as "Real Estate Finished"
FROM [CDW_CNA].[ssdv].[vw_OVP_JobSiteAddress] c
INNER JOIN [CDW_CNA].[ssdv].[vw_OneView_Client_Property] d on c.[OVCPID] = d.[OneViewClientPropertyID]
INNER JOIN [CDW_CNA].[ssdv].[vw_OVP_ProjectDetails] a on a.[job nbr] = c.[job nbr]
INNER JOIN [CDW_CNA].[ssdv].[vw_OVP_DARM] b on b.[job nbr] = c.[job nbr]
INNER JOIN [CDW_CNA].[ssdv].[vw_CREM_BasicLeaseDetails] e on left(e.[TenureID],4) = c.[Client Facility Nbr]
WHERE
b.[Comments] is not null
AND e.[leaseEndDate] = (
SELECT
max([LeaseEndDate])
FROM [CDW_CNA].[ssdv].[vw_CREM_BasicLeaseDetails] f
WHERE f.[PropertyKey] = e.[PropertyKey]
)
答案 0 :(得分:1)
在子查询之外,你看不到别名为'e'的表[CDW_CNA].[ssdv].[vw_OVP_Milestones]
,因为它在子查询中。
引擎不会保留子查询中的顺序,它会根据可以改变它的其余计划/连接进行排序。
您应该可以在外面订购,但您必须order by"Real Estate Finished"
就像一张纸条 - 给出一个选择,我不会使用带空格的字段名称,你最终会长期后悔。如果这里需要3个部分名称,你也可以进行审查,但它可能是正确考虑的,但默认情况下不会使用。
顶部的子查询也看起来不像需要是一个子查询 - 您应该只能加入[CDW_CNA]。[ssdv]。[vw_OVP_Milestones]。