作者HankJiang (没人要的呆江)
看板Database
标题[SQL ] 不知道怎麽下标题的问题
时间Thu Oct 22 11:16:34 2015
资料库名称:PLSQL
资料库版本:
内容/问题描述:
想要Select出符合资格(Table C中资格值在50~60之间)的Team中
尚未完成目标量的(Team_Person)、未完成的量、单位
Person都是以序号来排(A里面有1.2.3 B有1 C有1.2.3)
目标结果:
Team | Person | 未完成数(目标-sum(完成数)) | 单位
-----------------------------------------------------
A | 1 | | 公尺
A | 2 | | 公尺
A | 3 | | 公里
B | 1 | | 公尺
C | 1 | | 公尺
C | 2 | | 公里
C | 3 | | 公里
C | 4 | | 公尺
D | 1 | | 公尺
E | 1 | | 公尺
现有表格:
Table A Table C
------------------------------------ ----------------------------------
A_Team | A_Person | 目标量 | 单位 C_Team | 资格(值在50~60之间符合)
------------------------------------ ----------------------------------
| | | |
| | | |
| | | |
| | | |
------------------------------------ ----------------------------------
Table B
-----------------------------------
B_Team | B_Person | 完成量 | 单位
-----------------------------------
| | |
| | |
| | |
| | |
-----------------------------------
SELECT A_Team,A_Person,(A_目标量-SUM(B_完成量)) 未完成量,A_单位,C_资格
FROM Table A
LEFT JOIN Table B ON A_Team = B_Team AND A_Person = B_Person
LEFT JOIN Table C ON A_Team = C_Team
WHERE
C_资格>50 AND C_资格<60
GROUP BY
A_Team,A_Person,A_单位,C_资格
HAVING
SUM(B_完成量)<A_目标量
试着组出来长这样...但跟预期的一样无法执行(出现Not a group by expression)
SQL新手,请各位前辈指教<(_ _)>
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.221.187.130
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1445483797.A.A21.html
※ 编辑: HankJiang (61.221.187.130), 10/22/2015 11:35:22
1F:推 cutekid: replace all: A_目标量 →min(A_目标量) 10/26 13:33