[英]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.