Mysql 将多个SQL select语句合并到列中

Mysql 将多个SQL select语句合并到列中,mysql,Mysql,我很难把这件事放在心上,非常感谢您的帮助 我有两个select语句,它们连接到一个或多个表 SELECT repinfo.repName, SUM(callstatssummary.CallsIn) FROM repinfo LEFT JOIN callstatssummary ON repinfo.isaacID = callstatssummary.IsaacID AND callstatssummary.ShiftDate >= '2013-02-10' AND callstatss

我很难把这件事放在心上,非常感谢您的帮助

我有两个select语句,它们连接到一个或多个表

SELECT repinfo.repName, SUM(callstatssummary.CallsIn)
FROM repinfo
LEFT JOIN callstatssummary
ON repinfo.isaacID = callstatssummary.IsaacID AND callstatssummary.ShiftDate >= '2013-02-10' AND callstatssummary.ShiftDate <= '2013-02-16'
GROUP BY repinfo.repName;

有什么建议吗?

组合这些语句的一种方法是使它们成为派生表/内联视图,并在repName上联接

请注意:很明显,如果两个代表可以有相同的名称,那么您可能希望以代表ID号或任何您称之为代表信息表主键的名称加入

select 
  r.repName, c.sumCallsIn, o.sumProdSold
from
  repinfo r
  left join (
    SELECT repinfo.repName, 
           SUM(callstatssummary.CallsIn) sumCallsIn
    FROM   repinfo
           LEFT JOIN callstatssummary
           ON repinfo.isaacID = callstatssummary.IsaacID 
           AND callstatssummary.ShiftDate >= '2013-02-10' 
           AND callstatssummary.ShiftDate <= '2013-02-16'
    GROUP BY repinfo.repName
  ) c
  on c.repName = r.repName
  left join (
    SELECT repinfo.repName, 
           SUM(`1036`.afterRgu) - SUM(`1036`.priorRgu) sumProdSold
    FROM   repinfo
           JOIN reporders
           ON repinfo.repID = reporders.oRep
           JOIN `1036`
           ON reporders.workOrder = `1036`.workOrder 
           AND `1036`.entryDate >= '2013-02-10' 
           AND `1036`.entryDate <= '2013-02-16' 
           AND `1036`.afterRgu >= `1036`.priorRgu
    GROUP BY repinfo.repName
  ) o
  on r.repName = o.repName
order by r.repName;

非常好的回应,谢谢。我以前几乎没有使用派生表的经验,但能够通读并完全理解。很好!
|  repName  |  SUM(callstatssummary.CallsIn) |  SUM(`1036`.afterRgu) - SUM(`1036`.priorRgu)  |
______________________________________________________________________________________________
| Bruce W   | 41                             | 13                                            |
| Cathy M   | 84                             | 17                                            |
| Jonah S   | NULL                           | 29                                            |
select 
  r.repName, c.sumCallsIn, o.sumProdSold
from
  repinfo r
  left join (
    SELECT repinfo.repName, 
           SUM(callstatssummary.CallsIn) sumCallsIn
    FROM   repinfo
           LEFT JOIN callstatssummary
           ON repinfo.isaacID = callstatssummary.IsaacID 
           AND callstatssummary.ShiftDate >= '2013-02-10' 
           AND callstatssummary.ShiftDate <= '2013-02-16'
    GROUP BY repinfo.repName
  ) c
  on c.repName = r.repName
  left join (
    SELECT repinfo.repName, 
           SUM(`1036`.afterRgu) - SUM(`1036`.priorRgu) sumProdSold
    FROM   repinfo
           JOIN reporders
           ON repinfo.repID = reporders.oRep
           JOIN `1036`
           ON reporders.workOrder = `1036`.workOrder 
           AND `1036`.entryDate >= '2013-02-10' 
           AND `1036`.entryDate <= '2013-02-16' 
           AND `1036`.afterRgu >= `1036`.priorRgu
    GROUP BY repinfo.repName
  ) o
  on r.repName = o.repName
order by r.repName;