请教这句语法有何问题?
SELECT SUM(A.E)+SUM(B.E)+SUM(C.E) AS E INTO E_DIS FROM C_1 A,C_2 B,C_3 C
SELECT * FROM E_DIS
E字段是0或1的值,我试过分开算的话,SUM(A.E)=0、SUM(B.E)=234 、SUM(C.E)=403,
但用SUM(A.E)+SUM(B.E)+SUM(C.E)的话得到的结果是:27391,为什么?
SELECT SUM(A.E)+SUM(B.E)+SUM(C.E) AS E INTO E_DIS FROM C_1 A,C_2 B,C_3 C
SELECT * FROM E_DIS
E字段是0或1的值,我试过分开算的话,SUM(A.E)=0、SUM(B.E)=234 、SUM(C.E)=403,
但用SUM(A.E)+SUM(B.E)+SUM(C.E)的话得到的结果是:27391,为什么?
SELECT * FROM E_DIS
SELECT * FROM E_DIS
---------------------------e为bit类型时 sum(cast(e as int))--这样转换
select (select sum(e) from c_2)+(select sum(e) from c_1)+(select sum(e) from c_3)
3个表,每个表中有100个记录,你会的到100*100*100*3个记录然后相加。大的数据量根本没法算下去。你的方法应该是
SELECT SUM(d.Total)
FROM
(SELECT 1 AS ID,SUM(a.E) AS total
FROM C_1 a
UNION
SELECT 2 AS ID, SUM(b.E) AS total
FROM C_2 b
UNION
SELECT 3 AS ID, SUM(c.E) AS Total
FROM C_3 c ) d
select E=(select sum(Isnull(e,0)) from c_2)+(select sum(Isnull(e,0)) ) from c_1)+(select sum(Isnull(e,0)) ) from c_3) into E_DIS SELECT E FROM E_DIS