
以上是两张表,现在要统计两张表的Fee字段select CONVERT(varchar(100), B.ordertime, 23) as ordertime,sum(ISNULL(B.Fee, 0)) from RegisterUsers A INNER JOIN M_UserOrderAudio B on A.Id=B.UserId GROUP BY CONVERT(varchar(100), B.ordertime, 23)求问一条SQL怎么写出统计
select CONVERT(varchar(100), C.ordertime, 23) as ordertime,sum(ISNULL(C.Fee, 0)) from RegisterUsers A INNER JOIN M_UserOrderProduct C on A.Id=C.UserId GROUP BY CONVERT(varchar(100), C.ordertime, 23)
------解决思路----------------------
你先用UNION ALL把B和C表查询的相关字段合并成一个表,在JOIN表A并统计时间。
------解决思路----------------------
作为外键的 UserId 不会凭空多出来的,所以没必要关联 A 表。
SELECT ordertime,
SUM(Fee) Fee
FROM (
select CONVERT(varchar(100), ordertime, 23) as ordertime,
sum(ISNULL(Fee, 0)) AS Fee
from M_UserOrderAudio
GROUP BY CONVERT(varchar(100), ordertime, 23)
UNION ALL
select CONVERT(varchar(100), ordertime, 23) as ordertime,
sum(ISNULL(Fee, 0)) AS Fee
from M_UserOrderProduct
GROUP BY CONVERT(varchar(100), ordertime, 23)
) t
GROUP BY ordertime