簡體   English   中英

您如何使用 sql 計數來查找此查詢中每個人的 position 控制號碼的數量?

[英]How do you use sql count to find the number of position control numbers for each person in this query?

我正在嘗試計算每個員工的 position 控制號碼的數量。 我嘗試使用 SELECT COUNT(hrp.pos_ctl_no),但它只返回每個 position 控制號的計數,而不是每個人的 position 控制號的計數。 在提供的示例結果中,Abbott Edith 有 2 個 position 控制號。 我只希望她在電子表格中出現一次,她的名字計數為 2,表示她有 2 個 position 控制編號。 相反,由於 2 個不同的控制編號,它顯示了她兩次。

這是我的 sql 查詢:

SELECT COUNT(hrp.pos_ctl_no),
empm.empl_no as "Employee Number",
hr.last_name as "Last Name", 
hr.first_name as "First Name",
isnull(hr.mid_name, '') as "Middle Name",
cctr.cctr_desc as "Work Location",
sj_desc as "Job Title",
code.st_job_cd as "Job Code",
hrp.pos_ctl_no as "Position Control Number"

FROM cenoff.hrperson hr
JOIN cenoff.prempm empm on empm.pers_id = hr.pers_id
JOIN [NGSQLSVR].[CENOFF].[PREMPJOB] job on job.empl_no = empm.empl_no
JOIN [NGSQLSVR].[CENOFF].[CCTR] cctr on cctr.glcval_val = job.glcval_val
JOIN [NGSQLSVR].[CENOFF].[PREMPCPI] CPI on cpi.empl_no = empm.empl_no
JOIN [NGSQLSVR].[CENOFF].[hrstpcode] code on code.st_job_cd = cpi.st_job_cd
JOIN [NGSQLSVR].[CENOFF].[pretype] on pretype.empl_type = job.empl_type
LEFT JOIN [NGSQLSVR].[CENOFF].[hrpcej] hrp on hrp.pers_id = hr.pers_id


WHERE 
job.job_type = 'P'
and cpi.assign_perc = '1.0000'
and job.job_no = '1'
--and hrp.pos_ctl_no is NULL
and empm.cpi_stat = 'A'  
--and cctr.cctr_desc = 'Isabella Complex'

GROUP BY 
empm.empl_no,
hrp.pos_ctl_no,
hr.last_name,
hr.first_name, 
isnull(hr.mid_name, ''), 
cctr.cctr_desc,
sj_desc,
code.st_job_cd, 
pretype.empl_type_desc, 
cpi.assign_perc, 
job.job_no, 
hr.hr_stat_cd, 
empm.cpi_stat, 
empm.hr_stat_cd,
job.hr_stat_cd, 
pos_began,
hrp.pos_ended, 
job.hire_date, 
enroll_end_date, 
contr_end_date 

ORDER BY hr.last_name, hr.first_name

結果

沒有數據很難理解。 從 group by 子句中刪除pos_ctl_no可能會成功。

SELECT COUNT(hrp.pos_ctl_no),
empm.empl_no as "Employee Number",
hr.last_name as "Last Name", 
hr.first_name as "First Name",
isnull(hr.mid_name, '') as "Middle Name",
cctr.cctr_desc as "Work Location",
sj_desc as "Job Title",
code.st_job_cd as "Job Code",


FROM cenoff.hrperson hr
JOIN cenoff.prempm empm on empm.pers_id = hr.pers_id
JOIN [NGSQLSVR].[CENOFF].[PREMPJOB] job on job.empl_no = empm.empl_no
JOIN [NGSQLSVR].[CENOFF].[CCTR] cctr on cctr.glcval_val = job.glcval_val
JOIN [NGSQLSVR].[CENOFF].[PREMPCPI] CPI on cpi.empl_no = empm.empl_no
JOIN [NGSQLSVR].[CENOFF].[hrstpcode] code on code.st_job_cd = cpi.st_job_cd
JOIN [NGSQLSVR].[CENOFF].[pretype] on pretype.empl_type = job.empl_type
LEFT JOIN [NGSQLSVR].[CENOFF].[hrpcej] hrp on hrp.pers_id = hr.pers_id


WHERE 
job.job_type = 'P'
and cpi.assign_perc = '1.0000'
and job.job_no = '1'
--and hrp.pos_ctl_no is NULL
and empm.cpi_stat = 'A'  
--and cctr.cctr_desc = 'Isabella Complex'

GROUP BY 
empm.empl_no,
hr.last_name,
hr.first_name, 
isnull(hr.mid_name, ''), 
cctr.cctr_desc,
sj_desc,
code.st_job_cd, 


ORDER BY hr.last_name, hr.first_name

暫無
暫無

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

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