我有一个查询可以正常工作以提取公司 A 的一系列目标和总工作时间。我想为公司 B 运行完全相同的查询并在一个公共日期加入它们,该日期恰好按周分组。我目前的查询:
SELECT * FROM (
SELECT org, date,
( SELECT SUM( target ) FROM target WHERE org = "companyA" ) AS companyA_target,
SUM( hours ) AS companyA_actual
FROM time_management_system
WHERE org = "companyA"
GROUP BY WEEK( date )
ORDER BY DATE
) q1
LEFT JOIN (
SELECT org, date,
( SELECT SUM( target ) FROM target WHERE org = "companyB" ) AS companyB_target,
SUM( hours ) AS companyB_actual
FROM time_management_system
WHERE org = "companyB"
GROUP BY WEEK( date )
ORDER BY DATE
) q2
ON q1.date = q2.date
结果显示公司A的所有日期/信息,但公司B仅显示零星数据。另外,这两个查询将显示完全相同的日期集,只是“目标”和“实际”列中的信息不同。
companyA 2012-01-28 105.00 39.00 NULL NULL NULL NULL
companyA 2012-02-05 105.00 15.00 NULL NULL NULL NULL
companyA 2012-02-13 105.00 60.50 companyB 2012-02-13 97.50 117.50
知道为什么我没有获得公司 B 的所有信息吗?
作为旁注,是否有人能够指出将每行的周值转换为列的方向?只有companyA和companyB是两行?
我感谢所有的帮助!谢谢。