Sql 使用CTE创建视图时出错
我认为我很愚蠢,但却犯了错误: Msg 195,15级,状态1,程序 大众汽车第三方SLA报告月度GP非汇总,第8行“分区” 这不是一个公认的选项 尝试执行以下CREATEVIEW语句时Sql 使用CTE创建视图时出错,sql,view,common-table-expression,Sql,View,Common Table Expression,我认为我很愚蠢,但却犯了错误: Msg 195,15级,状态1,程序 大众汽车第三方SLA报告月度GP非汇总,第8行“分区” 这不是一个公认的选项 尝试执行以下CREATEVIEW语句时 CREATE VIEW [dbo].[VW_THIRDPARTY_SLA_REPORT_MONTHLY_GP_NONAGGREGATE] With partitioned AS (Select B.MSH7_DateTimeOfMessage, B.PID2x1_PatientIDExternal, B.
CREATE VIEW [dbo].[VW_THIRDPARTY_SLA_REPORT_MONTHLY_GP_NONAGGREGATE]
With partitioned
AS
(Select
B.MSH7_DateTimeOfMessage,
B.PID2x1_PatientIDExternal,
B.PID3x1_PatientIDInternal,
B.PID5x1_PatientName_FamilyName,
B.PV3x2_AssignedPatientLocation_Room,
A.OBR4x2_UniversalServiceID_Text,
A.OBX3x2_ObservationIdentifier_Text,
A.OBR24_DiagnosticServiceSectionID,
A.OBR6_RequestDateTime,
C.TestName,
C.PriceBaseline,
D.Contract,
Row_NUMBER()
OVER(Partition By [ORC3_FillerOrderNumber], [OBX3x2_ObservationIdentifier_Text] order by [ORC9_DateTimeOfTransaction]) as seq
From [NWLHPathApp_DataWarehouse].[dbo].[PathologyHL7_Detail] A
LEFT OUTER JOIN [NWLHPathApp_DataWarehouse].[dbo].[PathologyHL7_Header] B ON A.[DETAIL_ID] = B.[HEADER_ID]
LEFT OUTER JOIN [NWLHPathApp_DataWarehouse].[dbo].[PathologyHL7_View_TFCData] C ON A.[OBR24_DiagnosticServiceSectionID] + A.[OBX3x1_ObservationIdentifier_Identifier] = C.[KEY]
LEFT OUTER JOIN [NWLHPathApp_DataWarehouse].[dbo].[PathologyHL7_LocationDetail] D ON B.[PV3x1_AssignedPatientLocation_PointOfCare] = D.[PracticeCode]
)
Select *
from partitioned
where seq =1
这是一个在存储过程中运行良好的查询,因此我很满意该查询不能将其创建为视图
如果您需要任何帮助,我们将不胜感激。您需要
作为创建视图之后的:
CREATE VIEW [dbo].[VW_THIRDPARTY_SLA_REPORT_MONTHLY_GP_NONAGGREGATE]
AS
With partitioned ...
您缺少以下项后的第一个AS
:
指出您似乎不能在使用CTE的同时添加视图列标题,这可能会有所帮助。(这浪费了我几分钟的时间)
如果取消对上面的(“Field1”、“Field2”)列声明的注释,则会失败
CREATE VIEW [dbo].[VW_THIRDPARTY_SLA_REPORT_MONTHLY_GP_NONAGGREGATE]
AS --- this is missing
With partitioned
AS
(
Select
B.MSH7_DateTimeOfMessage,
B.PID2x1_PatientIDExternal,
B.PID3x1_PatientIDInternal,
B.PID5x1_PatientName_FamilyName,
B.PV3x2_AssignedPatientLocation_Room,
A.OBR4x2_UniversalServiceID_Text,
A.OBX3x2_ObservationIdentifier_Text,
A.OBR24_DiagnosticServiceSectionID,
A.OBR6_RequestDateTime,
C.TestName,
C.PriceBaseline,
D.Contract,
Row_NUMBER() OVER(Partition By [ORC3_FillerOrderNumber], [OBX3x2_ObservationIdentifier_Text] order by [ORC9_DateTimeOfTransaction]) as seq
From [NWLHPathApp_DataWarehouse].[dbo].[PathologyHL7_Detail] A
LEFT OUTER JOIN [NWLHPathApp_DataWarehouse].[dbo].[PathologyHL7_Header] B ON A.[DETAIL_ID] = B.[HEADER_ID]
LEFT OUTER JOIN [NWLHPathApp_DataWarehouse].[dbo].[PathologyHL7_View_TFCData] C ON A.[OBR24_DiagnosticServiceSectionID] + A.[OBX3x1_ObservationIdentifier_Identifier] = C.[KEY]
LEFT OUTER JOIN [NWLHPathApp_DataWarehouse].[dbo].[PathologyHL7_LocationDetail] D ON B.[PV3x1_AssignedPatientLocation_PointOfCare] = D.[PracticeCode]
)
Select *
from partitioned
where seq =1
create or replace force editionable view "MYVIEW"
--("Field1", "Field2")
as
with results as (
select cal.field1,cal.field2 from mytable cal
)
select field1,field2 from results
;