如果这个问题已被多次询问,我很抱歉,但对其他人有用的解决方案似乎对我不起作用。
我有8个表,我试图在所有8个表中计算id。
我的代码是:
SELECT cs.SYS_LOC_CODE INTO tmp_FINAL
FROM dt cs
INNER JOIN table1 fv
ON cs.ID = fv.ID
INNER JOIN table2 v3
ON ff.ID = v3.ID
INNER JOIN table3 ppi
ON v3.ID = ppi.ID
INNER JOIN table4 pu
ON ppi.ID = pu.ID
INNER JOIN table5 s
ON pu.ID = s.ID
INNER JOIN table6 t
ON s.ID = t.ID
INNER JOIN table7 sv1
ON t.ID= sv1.ID;
然后我在表上做了一个count(*),得到的数字太大了,因为它超过了最小表大小的数量。
感谢您的帮助。
答案 0 :(得分:0)
试试这个:
WITH IDS AS (
SELECT COUNT(ID) AS IDCOUNT FROM table1
UNION ALL
SELECT COUNT(ID) AS IDCOUNT FROM table2
UNION ALL
...
UNION ALL
SELECT COUNT(ID) AS IDCOUNT FROM table8
)
SELECT SUM(IDCOUNT) FROM IDS
如果您不希望多次计算来自不同表的相同ID,请将“UNION ALL”语句替换为“UNION”。 如果您不希望多次计算单个表中的相同ID,请将“COUNT(ID)”替换为“COUNT(DISTINCT ID)”。