当前位置: 代码迷 >> Sql Server >> 求问两张表的时间集合如何取
  详细解决方案

求问两张表的时间集合如何取

热度:74   发布时间:2016-04-24 09:36:48.0
求问两张表的时间集合怎么取?
以上是两张表,现在要统计两张表的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)
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)
求问一条SQL怎么写出统计
------解决思路----------------------
你先用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
  相关解决方案