簡體   English   中英

如何從分組依據中排除一般標准值

[英]How to exclude general criteria value from group by

我有兩個表:

一種用於員工數據的Employee

另一個用於員工休假的余額VacBal

現在我想獲取每個雇員的當前休假余額,考慮是否emp_num = 0那么這是所有雇員的general balance ,而不是特定雇員的


如果Employee表是這樣的樣本數據:

emp_num   name
  546     john
  134     Ramy

像這樣的VacBal

emp_num  bal_num  bal_date
  546      1       5-5-2015
  546      2       6-5-2015
  134      1       7-5-2015
  0        3       2-2-2015
  0        4       6-1-2015

我想要這樣的結果集:

emp_num  name  SUM(bal_num)
546      john    10             --->3+7
134      Ramy     8             --->1+7

這個怎么做 ?

您可以對SUM使用相關的子查詢:

select e.emp_num, e.name, (select sum(vb.bal_num) from VacBal vb
                           where vb.emp_num in (e.emp_num,0))
from Employee e
SELECT e.emp_num, 
       name, 
       Sum(bal_num) + (SELECT Sum(bal_num) 
                       FROM   vacbal vb 
                       WHERE  emp_num = 0) 
FROM   employee e
          inner join vacbal v on e.emp_num=v.emp_num
GROUP  BY e.emp_num, 
          name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM