[英]SQL - Table alias in Left Join
我試圖用Left Join編寫一個簡單的SQL查詢。
這是查詢:
SELECT *
FROM (
SELECT *
FROM TRN_IN.COIT AS TRANSMISSIONS
LEFT JOIN (
SELECT TRNNumber ,COUNT(ID)
FROM TRN_IN.COIT AS TOTAL_LINES
WHERE DataPiece02 = 'TO'
GROUP BY TRNNumber
) ON TRANSMISSIONS.TRNNumber = TOTAL_LINES.TRNNumber
)
第二個表別名為TOTAL_LINES。
運行它時,出現錯誤,未列出TOTAL_LINES。
奇怪的是,當嘗試自行運行第二個查詢時,沒有錯誤:
(SELECT TRNNumber ,COUNT(ID)
FROM TRN_IN.COIT AS TOTAL_LINES
WHERE DataPiece02 = 'TO'
GROUP BY TRNNumber )
有人知道嗎?
希望您在錯誤的位置分配了AS TOTAL_LINES
表別名。
在第二個子查詢之后放置表別名名稱將解決您的問題。
您可以嘗試以下查詢:
SELECT *
FROM (
SELECT *
FROM TRN_IN.COIT AS TRANSMISSIONS
LEFT JOIN (
SELECT TRNNumber
,COUNT(ID) AS CountDetails
FROM TRN_IN.COIT
WHERE DataPiece02 = 'TO'
GROUP BY TRNNumber
) AS TOTAL_LINES ON TRANSMISSIONS.TRNNumber = TOTAL_LINES.TRNNumber
) AS Result
TOTAL_LINES必須是整個select的別名,而不是from子句中的表。 改成:
SELECT * FROM ( SELECT * FROM TRN_IN.COIT AS TRANSMISSIONS
LEFT JOIN ( SELECT TRNNumber ,COUNT(ID) FROM TRN_IN.COIT WHERE DataPiece02 = 'TO' GROUP BY TRNNumber ) AS TOTAL_LINES
ON TRANSMISSIONS.TRNNumber = TOTAL_LINES .TRNNumber)
嘗試這個..
SELECT TOTAL_LINES.TRNNumber,COUNT(TOTAL_LINES.ID) FROM TRN_IN.COIT TRANSMISSIONS LEFT JOIN TRN_IN.COIT TOTAL_LINES
ON TRANSMISSIONS.TRNNumber = TOTAL_LINES.TRNNumber
WHERE TOTAL_LINES.DataPiece02 = 'TO' GROUP BY TOTAL_LINES.TRNNumber;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.