SQL-使用多个CTE创建视图

SQL-使用多个CTE创建视图,sql,sql-view,sql-cte,Sql,Sql View,Sql Cte,我有一个视图要创建,它有两个CTE。 这就是我在下面所做的。 第一部分很好,但在“和”之后 事情不顺利。谢谢你的意见 CREATE VIEW dbo.VW.SPAg AS With today as (SELECT * FROM dbo.Work_Days WHERE [Date] = CAST(GETDATE() AS DATE) ) AND WITH rd as (SELECT [DATE] AS REP_DATE FROM dbo.Link_Days WHERE DAY ([DA

我有一个视图要创建,它有两个CTE。 这就是我在下面所做的。 第一部分很好,但在“和”之后 事情不顺利。谢谢你的意见

CREATE VIEW dbo.VW.SPAg
AS With today as 
(SELECT * FROM dbo.Work_Days
 WHERE [Date] = CAST(GETDATE() AS DATE)
)

AND WITH rd as
(SELECT [DATE] AS REP_DATE
 FROM dbo.Link_Days
 WHERE DAY ([DATE]) = 1
)
SELECT wm *,
gr.DATE_ORDINAL AS Goods_Rcvd_Ordinal
gt.DATE_ORDINAL AS Goods_Trnpt_Ordinal
today.DATE

FROM dbo.SPAg sg
INNER JOIN rd
  ON YEAR(sg.Client_Query)= YEAR(rd.REP_DATE)
LEFT JOIN dbo.Work_DAYS gr
ON sg.Goods_Rcvd = gr.[DATE]
LEFT JOIN dbo.Work_DAYS gt
ON sg.Goods_Trnpt = gt.[DATE]
要指定多个步骤,请使用

CREATE VIEW dbo.VW.SPAg   /* [dbo].[VW_SPAg] Probably you want this name*/
AS 
WITH today as 
(SELECT * FROM dbo.Work_Days
 WHERE [Date] = CAST(GETDATE() AS DATE)
), rd as
(SELECT [DATE] AS REP_DATE
 FROM dbo.Link_Days
 WHERE DAY ([DATE]) = 1
)
SELECT wm *,
gr.DATE_ORDINAL AS Goods_Rcvd_Ordinal
gt.DATE_ORDINAL AS Goods_Trnpt_Ordinal
today.DATE
FROM dbo.SPAg sg
INNER JOIN rd
  ON YEAR(sg.Client_Query)= YEAR(rd.REP_DATE)
LEFT JOIN dbo.Work_DAYS gr
  ON sg.Goods_Rcvd = gr.[DATE]
LEFT JOIN dbo.Work_DAYS gt
  ON sg.Goods_Trnpt = gt.[DATE];
另外,我不喜欢视图名
dbo.VW.SPAg
,您有名为
[dbo]
的数据库吗?或者应该是
[dbo].[VW_SPAg]

指定多个步骤使用

CREATE VIEW dbo.VW.SPAg   /* [dbo].[VW_SPAg] Probably you want this name*/
AS 
WITH today as 
(SELECT * FROM dbo.Work_Days
 WHERE [Date] = CAST(GETDATE() AS DATE)
), rd as
(SELECT [DATE] AS REP_DATE
 FROM dbo.Link_Days
 WHERE DAY ([DATE]) = 1
)
SELECT wm *,
gr.DATE_ORDINAL AS Goods_Rcvd_Ordinal
gt.DATE_ORDINAL AS Goods_Trnpt_Ordinal
today.DATE
FROM dbo.SPAg sg
INNER JOIN rd
  ON YEAR(sg.Client_Query)= YEAR(rd.REP_DATE)
LEFT JOIN dbo.Work_DAYS gr
  ON sg.Goods_Rcvd = gr.[DATE]
LEFT JOIN dbo.Work_DAYS gt
  ON sg.Goods_Trnpt = gt.[DATE];
另外,我不喜欢视图名
dbo.VW.SPAg
,您有名为
[dbo]
的数据库吗?或者应该是
[dbo].[VW_SPAg]

指定多个步骤使用

CREATE VIEW dbo.VW.SPAg   /* [dbo].[VW_SPAg] Probably you want this name*/
AS 
WITH today as 
(SELECT * FROM dbo.Work_Days
 WHERE [Date] = CAST(GETDATE() AS DATE)
), rd as
(SELECT [DATE] AS REP_DATE
 FROM dbo.Link_Days
 WHERE DAY ([DATE]) = 1
)
SELECT wm *,
gr.DATE_ORDINAL AS Goods_Rcvd_Ordinal
gt.DATE_ORDINAL AS Goods_Trnpt_Ordinal
today.DATE
FROM dbo.SPAg sg
INNER JOIN rd
  ON YEAR(sg.Client_Query)= YEAR(rd.REP_DATE)
LEFT JOIN dbo.Work_DAYS gr
  ON sg.Goods_Rcvd = gr.[DATE]
LEFT JOIN dbo.Work_DAYS gt
  ON sg.Goods_Trnpt = gt.[DATE];
另外,我不喜欢视图名
dbo.VW.SPAg
,您有名为
[dbo]
的数据库吗?或者应该是
[dbo].[VW_SPAg]

指定多个步骤使用

CREATE VIEW dbo.VW.SPAg   /* [dbo].[VW_SPAg] Probably you want this name*/
AS 
WITH today as 
(SELECT * FROM dbo.Work_Days
 WHERE [Date] = CAST(GETDATE() AS DATE)
), rd as
(SELECT [DATE] AS REP_DATE
 FROM dbo.Link_Days
 WHERE DAY ([DATE]) = 1
)
SELECT wm *,
gr.DATE_ORDINAL AS Goods_Rcvd_Ordinal
gt.DATE_ORDINAL AS Goods_Trnpt_Ordinal
today.DATE
FROM dbo.SPAg sg
INNER JOIN rd
  ON YEAR(sg.Client_Query)= YEAR(rd.REP_DATE)
LEFT JOIN dbo.Work_DAYS gr
  ON sg.Goods_Rcvd = gr.[DATE]
LEFT JOIN dbo.Work_DAYS gt
  ON sg.Goods_Trnpt = gt.[DATE];

另外,我不喜欢视图名
dbo.VW.SPAg
,您有名为
[dbo]
的数据库吗?或者应该是
[dbo].[VW_SPAg]

谢谢。成功了。一双额外的眼睛真是太神奇了。@Speedio很高兴听到它的效果。谢谢。成功了。一双额外的眼睛真是太神奇了。@Speedio很高兴听到它的效果。谢谢。成功了。一双额外的眼睛真是太神奇了。@Speedio很高兴听到它的效果。谢谢。成功了。一双额外的眼睛真是太神奇了。@Speedio很高兴听到它的效果。