111,120
社区成员
发帖
与我相关
我的任务
分享
--Last Meal SQL
select MealDate ,MealName as 'ParameterValue' ,count(1) as 'MealNumber' from
(SELECT CONVERT(varchar(10), BrushDate, 120) as 'MealDate', count(*) AS 'num',sz_Parameter.ParameterValue as 'MealName'
FROM dbo.EM_TEmployee
LEFT OUTER JOIN dbo.HR_TDepartment
ON dbo.EM_TEmployee.FTdepartmentid = dbo.HR_TDepartment.ID
RIGHT OUTER JOIN dbo.SZ_MealBrushData
ON dbo.EM_TEmployee.ID = dbo.SZ_MealBrushData.EmployeeID
inner join sz_Parameter
on sz_Parameter.ParameterCode = sz_MealBrushData.MealSector
WHERE 1=1 and SZ_MealBrushData.EmployeeID<>-1
and '2007-01-04'<=convert(varchar(10),
dbo.SZ_MealBrushData.BrushDate,120)
and '2008-01-04'>=convert(varchar(10),
dbo.SZ_MealBrushData.BrushDate,120)
and sz_Parameter.ParameterType = 'MealSector'
GROUP BY CONVERT(varchar(10), BrushDate, 120),
EmployeeID,dbo.SZ_MealBrushData.MealSector,sz_Parameter.ParameterValue
HAVING (COUNT(CONVERT(varchar(10), BrushDate, 120)) > 0)) a group by MealDate,MealName
order by MealDate
----
2007-01-04 晚餐 181
2007-01-04 午餐 406
2007-01-05 晚餐 181
2007-01-05 午餐 439
2007-01-06 晚餐 164
-------------------
DataTable dt = DbClass.GetEployee();
DateTime beginDate = DateTime.Parse("2007-1-4");
//取时间差
TimeSpan span = DateTime.Parse("2008-1-4") - beginDate;
//TimeSpan span = endDate.Subtract(beginDate);
string d = span.ToString().Substring(0, span.ToString().IndexOf("."));
int days = Int32.Parse(d);
for (int i = 4; i <= days + 4; i++)
{
//员工的午餐和晚餐
string ss = employeeTable.Rows[0][0].ToString();
string pp = beginDate.AddDays(i - 4).ToShortDateString();
DataRow[] emp_rows_Lunch = employeeTable.Select("ParameterValue='午餐' and MealDate=" + beginDate.AddDays(i - 4).ToShortDateString() + "'");
DataRow[] emp_rows_Dinner = employeeTable.Select("ParameterValue='晚餐' and MealDate='" + beginDate.AddDays(i - 4).ToShortDateString() + "'");
DataRow[] emp_rows_Breakfast = employeeTable.Select("ParameterValue='早餐' and MealDate='" + beginDate.AddDays(i - 4).ToShortDateString() + "'");
DataRow[] emp_rows_Supper = employeeTable.Select("ParameterValue='夜宵' and MealDate='" + beginDate.AddDays(i - 4).ToShortDateString() + "'");