sql-server - SQL 使用 With 子句连接查询
问题描述
我需要加入 2 个查询,但我不知道如何加入,因为我添加了一个with
子句,所以查询使它更有意义。
这是主要查询
SELECT
Id,
Referencia,
UAP,
ConsumoWeek01 AS ConsumoWeek01,
ConsumoWeek02,
CASE
WHEN Stock IS NULL THEN 0
ELSE
Stock
END AS Stock ,
PecasPorCaixa
FROM OPENQUERY(MACPAC,
'SELECT
ROW_NUMBER() OVER(ORDER BY A.RH6001 ASC) AS Id,
A.RH6001 as Referencia,
A.RH6002 as UAP,
A.RH6030 as ConsumoWeek01,
A.RH6031 as ConsumoWeek02,
IC130M.LLBLT1 as Stock,
0 AS PecasPorCaixa
FROM AUTO.D805DATPOR.TRP060H AS A
LEFT JOIN AUTO.D805DATPOR.IC130M IC130M
ON A.RH6001 = IC130M.LLPPN AND
IC130M.LLSTLC =
CASE A.RH6002
WHEN ''UAP1'' THEN ''M1''
WHEN ''UAP2'' THEN ''M2''
WHEN ''UAP3'' THEN ''M3''
WHEN ''UAP4'' THEN ''M4''
WHEN ''UAP5'' THEN ''M5''
WHEN ''UAP6'' THEN ''M6''
WHEN ''UAPP'' THEN ''PROTOS''
WHEN ''EXT'' THEN ''EXTR''
END
WHERE (A.RH6001 Not Like ''FS%'')
AND A.RH6030 <> 0
ORDER BY Referencia DESC')
这是我想要加入的查询
SELECT *
FROM OPENQUERY(MACPAC,
'WITH maxFornecedor AS
(
SELECT
YDA3REP.A3ARCD,
YDA3REP.A3D5CD,
ROW_NUMBER() OVER ( PARTITION BY YDA3REP.A3D5CD ORDER BY YDA3REP.A3A3DT DESC) AS Number
FROM
AUTO.YSACHAPOR.YDA3REP YDA3REP
)
SELECT
YDAUREP.AUD5CD,
YDAUREP.AUQCON
FROM maxFornecedor F
join AUTO.YSACHAPOR.YDAUREP YDAUREP
ON F.A3ARCD = YDAUREP.AUARCD
AND F.A3D5CD = YDAUREP.AUD5CD
WHERE F.Number = 1 AND YDAUREP.AUD5CD LIKE ''M%''
AND YDAUREP.AUD5CD NOT LIKE ''%P%''
AND YDAUREP.AUA0NB > 1
AND YDAUREP.AUG6ST=''O''
')
我尝试with
在第二次选择的第二次查询中添加另一个子句,但它不起作用
解决方案
要添加另一个 CTE 表,请使用以下语法:
with TableA
AS (SELECT 1 AS [ColumnA])
, TableB
AS (SELECT 2 AS [ColumnB])
推荐阅读
- git - 如何在 Visual Studio for Mac 8.9 中创建和推送本地 git 分支
- syntax-error - 如何从雪花中提取大量数据(超过 100 MB)到 CSV
- python-3.x - 从在 Google Cloud 运行 API 上创建的文件夹中删除图像
- html - Jquery如何跳到下一个迭代
- python - Python 请求和 urllib3 重试 - 如何重试?
- javascript - 反应导航和反应上下文
- java - 使用带有 JAXB 生成类的 Mapstruct 没有隐式 JAXBElement 转换(对于可空和可选的中间元素)
- python - 根据具有相同组 id 的其他行操作数据框中行的值
- html - 如何删除flexbox容器右侧的空白?
- sql - 查询以选择具有特定最后一列的所有表 Ibm Db2 z/os