Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL中计算生产数量_Sql - Fatal编程技术网

如何在SQL中计算生产数量

如何在SQL中计算生产数量,sql,Sql,我只是在SQL作业中遇到了一个问题 我必须在我的数据中列出所有收入超过3000.00美元的员工 这些是我的桌子 EMPLOYEE Table EMP_NUM EMP_NAME JOB_CLASS 101 John G. News Database Designer 102 David H. Senior Systems Analyst 103 June E. Ar

我只是在SQL作业中遇到了一个问题

我必须在我的数据中列出所有收入超过3000.00美元的员工

这些是我的桌子

 EMPLOYEE Table  
    EMP_NUM EMP_NAME                JOB_CLASS  
        101 John G. News            Database Designer
        102 David H. Senior         Systems Analyst
        103 June E. Arbough         Electrical Engineer
        104 Anne K. Ramoras         Systems Analyst
        105 Alice K. Johnson        Database Designer
        106 William Smithfield      Programmer
        107 Maria D. Alonzo         Programmer
        108 Ralph B. Washington     Systems Analyst
        111 Geoff B. Wabash         Clerical Support
        112 Darlene M. Smithson     DSS Analyst
        113 Delbert K. Joenbrood    Applications Designer
        114 Annelise Jones          Applications Designer
        115 Travis B. Bawangi       Systems Analyst
        118 James J. Frommer        General Support

ASSIGN Table
EMP_NUM  PROJ_NUM  HOURS
101      15        19.4
102      15        23.8
103      15        23.8
105      15        35.7
106      15        12.6
104      18        32.4
112      18        44
114      18        24.6
118      18        45.3
104      22        48.4
105      22        64.7
106      22        12.8
111      22        22
113      22        23.6
101      25        56.3
107      25        24.6
108      25        23.6
112      25        41.4
114      25        33.1
115      25        45.8
118      25        30.5

JOB Table
JOB_CLASS               CHG_HOUR
Applications Designer   48.1
Clerical Support        26.87
Database Designer       105
DSS Analyst             45.95
Electrical Engineer     84.5
General Support         18.36
Programmer              35.75
Systems Analyst         96.75
对于前面的问题,列出了在多个项目中工作的所有员工,我喜欢这样

select COUNT (a.PROJ_NUM), e.EMP_NAME
from EMPLOYEE e, ASSIGN a
where e.EMP_NUM = a.EMP_NUM
Having COUNT (a.PROJ_NUM) >= 2
group by e.EMP_NAME;
select COUNT (a.HOURS * j.CHG_OUR), e.EMP_NAME
from EMPLOYEE e, ASSIGN a. JOB j
where j.JOB_CLASS = e.JOB_CLASS
and e.EMP_NUM = a.EMP_NUM
Having COUNT (a.HOURS * j.CHG_OUR) >= 3000
group by e.EMP_NAME;
ORA-00933: SQL command not properly ended
00933. 00000 -  "SQL command not properly ended"
*Cause:    
*Action:
Error at Line: 60 Column: 26
这个密码给了我想要的

我现在遇到的麻烦是得到一份收入超过3000.00英镑的名单

所以我喜欢这个

select COUNT (a.PROJ_NUM), e.EMP_NAME
from EMPLOYEE e, ASSIGN a
where e.EMP_NUM = a.EMP_NUM
Having COUNT (a.PROJ_NUM) >= 2
group by e.EMP_NAME;
select COUNT (a.HOURS * j.CHG_OUR), e.EMP_NAME
from EMPLOYEE e, ASSIGN a. JOB j
where j.JOB_CLASS = e.JOB_CLASS
and e.EMP_NUM = a.EMP_NUM
Having COUNT (a.HOURS * j.CHG_OUR) >= 3000
group by e.EMP_NAME;
ORA-00933: SQL command not properly ended
00933. 00000 -  "SQL command not properly ended"
*Cause:    
*Action:
Error at Line: 60 Column: 26
但这一次,这段代码并没有给我想要的

它只打印出这样的错误消息

select COUNT (a.PROJ_NUM), e.EMP_NAME
from EMPLOYEE e, ASSIGN a
where e.EMP_NUM = a.EMP_NUM
Having COUNT (a.PROJ_NUM) >= 2
group by e.EMP_NAME;
select COUNT (a.HOURS * j.CHG_OUR), e.EMP_NAME
from EMPLOYEE e, ASSIGN a. JOB j
where j.JOB_CLASS = e.JOB_CLASS
and e.EMP_NUM = a.EMP_NUM
Having COUNT (a.HOURS * j.CHG_OUR) >= 3000
group by e.EMP_NAME;
ORA-00933: SQL command not properly ended
00933. 00000 -  "SQL command not properly ended"
*Cause:    
*Action:
Error at Line: 60 Column: 26
如果你知道如何修理它,请回答我

多谢各位

  • 您的HAVING语句必须在组之后而不是之前出现
  • 您不希望使用COUNT()聚合,而是希望使用SUM()
  • 大概是这样的:

     select SUM (a.HOURS * j.CHG_OUR), e.EMP_NAME
                from EMPLOYEE e, ASSIGN a. JOB j
                where j.JOB_CLASS = e.JOB_CLASS
                and e.EMP_NUM = a.EMP_NUM
                group by e.EMP_NAME
                Having SUM (a.HOURS * j.CHG_OUR) >= 3000;
    

    我认为你可以做到这一点:

    select SUM(a.HOURS * j.CHG_OUR), e.EMP_NAME
    from EMPLOYEE e, ASSIGN a, JOB j
    where j.JOB_CLASS = e.JOB_CLASS
    and e.EMP_NUM = a.EMP_NUM
    group by e.EMP_NAME
    Having sum(a.HOURS * j.CHG_OUR) >= 3000;
    
    那么这个呢:

    select COUNT (a.HOURS * j.CHG_OUR), e.EMP_NAME
    from EMPLOYEE e, ASSIGN a. JOB j
    where j.JOB_CLASS = e.JOB_CLASS
    and e.EMP_NUM = a.EMP_NUM
    group by e.EMP_NAME;
    Having COUNT ((a.HOURS * j.CHG_OUR) >= 3000)
    

    我在你的伯爵周围多加了一套帕伦。

    嗨,凯尔,谢谢你的回复。对于ur#1的答案,那么为什么我的第一个代码即使在having语句出现在group by语句之前也能工作呢?我可以问一下如何使用SUM()聚合吗?我刚刚发现我把句点放在赋值a之后。所以我把它改为逗号,现在我有一条错误消息,上面写着ORA-00904:“J”。“CHG_OUR”:无效标识符00904。00000-“%s:无效标识符”*原因:*操作:第64行错误列:23Hi Noel,ye我刚找到它lol,所以我现在修复了它,我再次出现无效标识符错误,这次,我在我们的lol中输入了错误。它应该是j.CHG_HOUR;;这让我看起来很傻。现在我明白了。谢谢你们!只是一个简短的提示,您可能希望>3000,而不是>=3000(如果作业显示大于3000)。这可能是一个打字错误,但。。。检查您的
    from
    子句:您正在编写
    分配a。作业j
    改用逗号:
    分配一个,作业j
    你们这些打字错误。。。下次我应该再检查一遍。再次感谢你!