2016-03-11 73 views
1

我有一個查詢,它爲我提供了Comp_mkey = 7 and 110的數據。查詢是如下通過SQL中的查詢獲取所有員工

SELECT DISTINCT m.comp_mkey, 
      c.company_name, 
      m.start_date, 
      m.End_date, 
      m.Process_date, 
      m.Months_days, 
      m.Process_year, 
      m.Process_Month FROM emp_mst e, 
      company_mst c, 
      P_Monthly_Must_Para_Hdr m WHERE c.mkey = e.comp_mkey 
      AND m.comp_mkey = e.comp_mkey 
      AND (m.process_date IS NOT NULL 
      AND (convert(varchar,(getDate()),103)) = convert(varchar,m.process_date + 1, 103)) 
      AND m.Process_year = 2016 
      AND Process_month = 2 

查詢的輸出是如下: -

Table output

現在我想的是,

所有僱員的姓名,其comp_mkey7,110

請讓我知道如何獲取

我使用​​

回答

2

對於剛剛名

SELECT DISTINCT e.Emp_name 
FROM emp_mst e 
WHERE e.comp_mkey IN ('7', '110') 

就像你說的使用IN

SELECT DISTINCT m.comp_mkey, c.company_name, m.start_date, m.End_date, m.Process_date, m.Months_days, m.Process_year, m.Process_Month 
FROM emp_mst e, company_mst c, P_Monthly_Must_Para_Hdr m 
WHERE c.mkey = e.comp_mkey 
AND m.comp_mkey = e.comp_mkey 
AND (m.process_date IS NOT NULL 
AND (convert(varchar,(getDate()),103)) = convert(varchar,m.process_date + 1, 103)) 
AND m.Process_year = 2016 
AND Process_month = 2 
AND m.comp_mkey IN ('7', '110') 

你也應該用明確的像這樣加入。

SELECT DISTINCT m.comp_mkey, c.company_name, m.start_date, m.End_date, m.Process_date, m.Months_days, m.Process_year, m.Process_Month 
FROM emp_mst e 
INNER JOIN company_mst c ON c.mkey = e.comp_mkey 
INNER JOIN P_Monthly_Must_Para_Hdr m ON m.comp_mkey = e.comp_mkey 
WHERE (m.process_date IS NOT NULL 
AND (convert(varchar,(getDate()),103)) = convert(varchar,m.process_date + 1, 103)) 
AND m.Process_year = 2016 
AND Process_month = 2 
AND m.comp_mkey IN ('7', '110') 
+0

這兩個查詢有什麼區別?並在執行這兩個查詢後,我沒有得到'員工姓名',結果相同 – BNN

+0

你的員工姓名字段叫什麼? – Matt

+0

它在'emp_mst'表中被稱爲'Emp_name'。 – BNN

相關問題