多个表上的SQL

时间:2017-01-30 20:49:06

标签: sql sql-server

如果这个问题已被多次询问,我很抱歉,但对其他人有用的解决方案似乎对我不起作用。

我有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(*),得到的数字太大了,因为它超过了最小表大小的数量。

感谢您的帮助。

1 个答案:

答案 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)”。