【发布时间】:2017-09-09 16:37:07
【问题描述】:
我希望能够从下面的查询中输出以下字段:
AddedById,AddedByName,HoursWorked,CurrentYearlyFlexiAvailable
但是,我有 WHERE addedby=1,我想将其替换为字段名称 AddedById,因为我不想将此值硬编码为整体查询应该并且将返回多个人,我想从 rpt_timesheet_data 视图中获取此值,该视图在那里。 CurrentYearlyFlexiAvailable 字段应该通过 SELECT SUM(ttl) 和 FROM (SELECT SUM(worked) -420 为 ttl
SELECT AddedById,AddedByName,SUM(HoursWorked) AS HoursWorked
,(SELECT SUM(ttl) - (
SELECT SUM(worked)
FROM vwtimesheet
WHERE addedby=AddedById
AND entrydate BETWEEN '2017-01-01' AND '2017-04-13'
AND activityid=3192
GROUP BY addedby ) AS flexihours
FROM (
SELECT SUM(worked)-420 AS ttl
FROM vwtimesheet
WHERE addedby=1 <!--HERE IS THE ISSUE
AND entrydate BETWEEN '2017-01-01' AND '2017-04-13'
AND projectid<>113 AND activityid<>3192
GROUP BY entrydate
HAVING SUM(worked)>420
) AS s) AS CurrentYearlyFlexiAvailable
FROM rpt_timesheet_data
WHERE entrydate BETWEEN '2017-04-02' AND '2017-04-13 23:59:59'
AND ActivityId=3192
GROUP BY AddedById,AddedByName
ORDER BY AddedByName
但我不断得到:
错误代码:1054。“where 子句”中的未知列“AddedById”
就在那个位置。我尝试了各种查询来对此进行排序,但无法弄清楚。抱歉不善于解释这一点,可以在我的脑海中看到我想要做什么......
这是一个非常相似的查询,它返回单个用户的结果,而上面的查询是为了遍历所有用户并给我结果:-
SELECT addedbyname, SUM(ttl) -
(SELECT SUM(worked)
FROM vwtimesheet
WHERE addedby=1
AND entrydate BETWEEN '2017-01-01' AND '2017-04-13'
AND activityid=3192
GROUP BY addedby ) AS CurrentYearlyFlexiAvailable
,(SELECT SUM(worked) FROM vwtimesheet
WHERE addedby=1
AND entrydate BETWEEN '2017-01-01' AND '2017-04-13'
AND activityid=3192
GROUP BY addedby ) AS flexiused
,(SELECT sum(worked) FROM vwtimesheet
WHERE addedby=1
AND entrydate BETWEEN DATE_FORMAT(NOW() ,'%Y-%m-01') AND curdate()
AND activityid=3192
GROUP BY addedby ) as fleximonthused
FROM ( SELECT entrydate,addedbyname,SUM(worked)-420 AS ttl FROM vwtimesheet
WHERE addedby=1
AND entrydate BETWEEN '2017-01-01' AND '2017-04-13'
AND projectid<>113
AND activityid<>3192
GROUP BY entrydate,addedbyname
HAVING SUM(worked)>420
) AS s
【问题讨论】:
-
也许你应该问另一个问题。或者至少认真编辑这个。提供示例数据、期望的结果,并描述您尝试实现的逻辑。
-
在您的内部查询中,您需要包含您应用
GROUP BY的字段。我将尝试更正您的代码并尽快发布答案。 -
您可能会发现阅读此meta.stackoverflow.com/questions/271055/… 会有所帮助
-
你想做什么?
标签: mysql sql derived-table