我有一些組從我的SQL查詢返回的記錄從哪裏獲得員工姓名,當月休假的他開始和結束日期僱員的葉子總數。我的問題是我得到了同一員工的兩條記錄,但是有不同的休假日期。現在,我想讓他休假時該員工的所有日期(應結合他的兩個假期數據)。如何獲得在C#
我的SQL查詢:
SELECT distinct emp.emp_name,
NULL as start_date,
NULL as end_date
FROM employee_details emp
WHERE emp.group_name = 'A' and
Emp_Id not in (SELECT distinct emp.Emp_Id
FROM employee_details emp, offshore_leave_calendar olc
WHERE emp.emp_id = olc.emp_id AND
emp.group_name = 'A' and
datepart(mm,olc.start_date) = datepart(mm, getdate()))
union
SELECT distinct emp.emp_name,
olc.Start_Date,
olc.End_Date
FROM employee_details emp, offshore_leave_calendar olc
WHERE emp.emp_id = olc.emp_id AND
emp.group_name = 'A' and
datepart(mm, olc.start_date) = datepart(mm,getdate())
我的上述查詢的輸出是:
Emp_Name start_date end_date
John
Sophia
Olivia
Davis 3/20/2017 12:00:00 AM 3/24/2017 12:00:00 AM
Clark 3/21/2017 12:00:00 AM 3/24/2017 12:00:00 AM
Paul
Thomas 3/21/2016 12:00:00 AM 3/29/2016 12:00:00 AM
Thomas 3/6/2017 12:00:00 AM 3/10/2017 12:00:00 AM
在上面的輸出托馬斯是兩次在當月休假。所以我希望托馬斯的所有日期,只要他在C#的列表中留下。輸出日期應該是:
3/06/2016
3/07/2016
3/08/2016
3/09/2016
3/10/2016
3/21/2016
3/22/2016
3/23/2016
3/24/2016
3/25/2016
3/26/2016
3/27/2016
3/28/2016
3/29/2016
任何人都可以幫助我嗎?
我有一個名單爲:
List<LeaveData> leaveList = new List<LeaveData>();
其中LeaveData類有三個定義:
public string Emp_Name { get; set; }
public DateTime? start_date { get; set; }
public DateTime? end_date { get; set; }
反對月份的每個日期我要指派僱員,誰是員工請不要分配休假。所以我循環當月所有的日期,並寫了這個代碼查找日期在其員工休假:
for (int i = 0; i < dates.Length; i++)
{
for (DateTime? date = leaveList[index].start_date; date <= leaveList[index].end_date; date = date.Value.AddDays(1))
{
allDates.Add(date);
}
}
,其中指數是從0-7的計數(在這種情況下)。索引將指向我從我的SQL查詢中獲得的任何員工。
請分享您的C#代碼。 –
按員工姓名對數據集中的記錄進行分組 –
您最近在做什麼?實體框架還是什麼? – Worthy7