我試圖做一些使用MSSQL,我認爲是可能的(很容易),但我不知道如何發出正確的搜索字符串。我有下面的情況。MSSQL選擇單行與所有引用計數
Table A
UID | Value....
1 | a
2 | b
3 | c
Table B
PartTypes_uid_fk | Value....
1 | a
1 | b
1 | c
1 | d
1 | e
3 | 67
3 | 1354
我試圖得到以下結果,所有結果查詢表A {表A *}和在同一行的結果顯示錶B引用的數量計數{} TableB.tableA_fk我 有哪些到目前爲止是以下。
SELECT DISTINCT t1.uid, CONVERT(varchar(MAX), t1.Name) AS Name, CONVERT(varchar(MAX), t1.Description) AS Description, Count(t2.Items_uid_fk) OVER (Partition By t2.PartTypes_uid_fk) as Count FROM [Table1] as t1 left outer join Table2 as t2 on t2.PartTypes_uid_fk=t1.uid;
這適用於所有的表A記錄與表B中的相關記錄,但如果有表B 0項將無法正常工作。 varchars的轉換是必需的,因爲它們是ntext格式,並且它是不同的。
感謝您提前給予您所有的幫助。 斯蒂芬
+1。我沒有讀過這個名詞。這將是你最有效的手段。 SQL在優化這個時很聰明,而且在將子查詢與主查詢匹配時不會執行表掃描。所以我認爲這是應該被接受的解決方案。 –
這很好,謝謝。 – spraus