-1
我試圖在DB2中查詢以下內容。 T28,T29和T30是表名。它們的文件名是所有表中的列。我必須通過文件名在所有三個表中找到文件名的計數。你能幫我嗎?通過該文件名從多個表組中獲取文件名計數
那麼,我正在DB2中嘗試這個。
我正在尋找這樣的輸出。
filename T28COUNT T29COUNT T30COUNT
我試圖在DB2中查詢以下內容。 T28,T29和T30是表名。它們的文件名是所有表中的列。我必須通過文件名在所有三個表中找到文件名的計數。你能幫我嗎?通過該文件名從多個表組中獲取文件名計數
那麼,我正在DB2中嘗試這個。
我正在尋找這樣的輸出。
filename T28COUNT T29COUNT T30COUNT
嘗試
SELECT filename,
SUM(CASE WHEN t = 28 THEN 1 ELSE 0 END) t28count,
SUM(CASE WHEN t = 29 THEN 1 ELSE 0 END) t29count,
SUM(CASE WHEN t = 30 THEN 1 ELSE 0 END) t30count
FROM
(
SELECT 28 AS t, filename
FROM t28
UNION ALL
SELECT 29 AS t, filename
FROM t29
UNION ALL
SELECT 30 AS t, filename
FROM t30
) q
GROUP BY filename
ORDER BY filename
這裏是SQLFiddle演示了SQL Server中,但我相信它應該工作幾乎相同的DB2。
嗨,我想顯示在每個表中的文件名計數T28,T29,T30表中的文件名稱F1的計數。 T28,T29和T30表中的文件f2的計數。 T28只是一個表名。 – Rams
@Rams嗨。這完全是**答案中的查詢。你看看我提供的sqlfiddle演示嗎?你在你的系統上試過了嗎?它使用來自3個表的'union'結果集的條件計數。如果您因爲某種原因認爲它沒有完成其工作,請詳細說明原因並根據它提供一些樣本數據和期望的結果。 – peterm
嗨Peterm,查詢確實是我需要的。謝謝你,這是完美的。 – Rams