當我嘗試加入時,我收到了很多錯誤(可能是因爲我從來沒有和他們一起過)。TSQL加入表時出錯
我的存儲過程是非常簡單的:
SELECT *
FROM
(SELECT DISTINCT
(A.whoAdded) AS whoAdded,
COUNT(A.tag) AS totalTags,
COUNT(DISTINCT A.data) AS totalSubmissions,
COUNT(DISTINCT B.data) AS totalSearches,
C.firstName AS firstName,
C.lastName AS lastName,
C.titleDesc AS titleDesc
FROM
Tags_Accounts AS A
INNER JOIN
Tags_Log AS B ON A.whoAdded = B.ntid
INNER JOIN
empTable AS C ON A.whoAdded = C.ntid
WHERE
whoAdded = @ntid
GROUP BY
whoAdded) AS a
FOR XML PATH ('profile'), TYPE, ELEMENTS, ROOT ('root');
的錯誤我得到的總是相似的:
列「empTable.FirstName」無效在選擇列表中,因爲它是不包含在聚合函數或GROUP BY子句中。
我希望如果有人能指出爲什麼這個查詢不起作用或我可以做什麼來解決它,我可以修復所有其他嘗試,讓我在同一個地點。
的錯誤是很明顯的:你包括第一個和最後一個名字,加上標題,而不會被分組他們。將它們添加到組中,將它們從select語句中刪除,或者對它們執行一些聚合。 – LittleBobbyTables
我想我只是有點不清楚什麼時候你添加一些東西到條款 – SBB
兩個方面的注意事項:**(1)**如果你的列'C.firstName'與你給它的別名相同( 'AS firstName'),那麼這個別名是毫無意義的,完全可以避免。 **(2)**我建議使用**更有意義的表別名而不僅僅是'A','B'和'C'--使用更明顯的東西:'Tags_Accounts AS ta','Tags_Logs AS tl','empTable AS e'或類似的東西!讓您的查詢更具可讀性,更易於理解! –