我试图从位于同一台服务器上的两个数据库中进行查询。第一个数据库查询与JOIN和UNION子句有点复杂,但加入其他数据库非常简单。我在最后一行代码上一直收到错误 - SITE_ID_NUMBER
。在同一台服务器上连接多个数据库SQL Server
我从来没有尝试过这一点 - 任何线索,我可能做错了什么?附加说明 - 数据库的JOIN子句由一个本地列组成 - 即“6041”和一个计算结果 - 我必须使用SUBSTRING
并添加6以获得匹配值。
更新 - 一些变化之后,我居然遇到了错误:
Msg 8156, Level 16, State 1, Line 32
The column 'RECORD_DATE_TIME' was specified multiple times for 'P'.
谢谢。
SELECT P.[6] + SUBSTRING(A.SHIP_TO,6,3) AS 'STORE' ,
S.SITE_ID_NUMBER,
S.DM,
S.AREA,
S.STORE_NAME,
S.LOCATION,
P.WHSE AS 'DIVISION_DESC',
P.ORDER_STATUS,
P.MATERIAL,
P.DESCRIPTION,
P.PO_NUMBER AS 'CUSTOMER_PO_NUMBER',
P.ORDER_QUANTITY AS'QTY',
P.RSHIP_DATE AS 'REQUESTED_SHIP_DATE',
S.TRANSIT_6040_6041
FROM
(SELECT *
FROM PDX_SAP_USER.dbo.VW_ADIDAS_RETAIL_aRI A
JOIN PDX_SAP_USER.dbo.VW_WB_DELIVERIES D
ON A.DELIVERY_NUMBER = D.DELIVERY_NUMBER
UNION ALL
SELECT *
FROM PDX_SAP_USER.dbo.VW_ADIDAS_RETAIL_aRO A
JOIN PDX_SAP_USER.dbo.VW_WB_DELIVERIES D
ON A.DELIVERY_NUMBER = D.DELIVERY_NUMBER) P
JOIN [ADI_USER.MAINTAINED].dbo.SiteDataAdiRbk S
ON S.SITE_ID_NUMBER = P.STORE;
你实际上有一个名为“6”的列? – Aheho 2014-10-05 00:38:00
_Never_使用'SELECT *',因为它会导致这些令人困惑的错误。总是专门列出列,尤其是使用'UNION'时。如果你专门列出你的专栏,你可能会发现你的问题。该问题可能在您上次查询中。我建议你通过运行查询的一些部分来做一些更详细的故障排除,然后发回更具体的东西。 – 2014-10-05 01:33:07