我们如何根据日期和员工ID与商店程序显示报告。 [英] How can we display report according to date and employee id with store procedure.
本文介绍了我们如何根据日期和员工ID与商店程序显示报告。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Hello Everyone,
我为时间表创建了报告。这个运行完美,但我得到了一个发行版。
假设2016年12月1日
我填写时间表和
13 / 1/2016我已填写时间表。
如果我看到2016年1月13日的报告,那么它将完美运作,但当我选择2016年12月1日的报告时记录和13/1/2016所有记录显示。
我将发送报告aspx页面和存储过程。
plz帮助这个解决方案。
Hello Everyone,
I have created report for timesheet. This run perfect but I get one issu in that.
suppose
on 12/1/2016 I have fill up timesheet and
on 13/1/2016 i have fill up timesheet.
if i saw the report for 13/1/2016 then it will work perfectly,but when i select report for 12/1/2016 that time this date record and 13/1/2016 all record display.
I will send report aspx page and store procedure for it.
plz help for this solution.
ET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[DailyTimeSheet_BasicReport]
@StartDate varchar(50) = '',
@EmployeeId INT = 0
AS
DECLARE @strQuery varchar(5000)
DECLARE @strCondition varchar(5000)
DECLARE @strOrderBy varchar(500)
SET @strCondition = ' WHERE 1 = 1 '
SET @strQuery=' SELECT CONVERT(VARCHAR, T.CreateDateTime,105) AS [LoginDate],
E.FullName,
T.TaskTimeIn,RIGHT(CONVERT(VARCHAR,T.TaskTimeIn,100),7) AS [TimeIn],
T.TaskTimeOut,RIGHT(CONVERT(VARCHAR,T.TaskTimeOut,100),7) AS [TimeOut],
T.TaskDescription,
CONVERT(varchar(5), DATEADD(minute, DATEDIFF(minute, TaskTimeIn, ISNULL(TaskTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))), 0), 114) AS [TimeSpent] ,
DATEDIFF(minute, TaskTimeIn, ISNULL(TaskTimeOut,SWITCHOFFSET(SYSDATETIMEOFFSET(), ''+05:30''))) AS [TimeSpentMinutes],
E.EmployeeId
FROM
DailyTimeSheetTrackers T
INNER JOIN Employees E ON E.EmployeeId = T.EmployeeId
'
if (@StartDate <> '')
SET @strCondition = @strCondition + ' AND CAST(CONVERT(VARCHAR ,T.CreateDateTime,101) AS DATE) >= CONVERT(VARCHAR ,'''+ @StartDate +''',101) '
if (@EmployeeId >0)
SET @strCondition = @strCondition + ' AND E.EmployeeId = ' + CAST(@EmployeeId AS varchar(10))
SET @strOrderBy = ' Order BY T.CreateDateTime,E.EmployeeId '
PRINT @strQuery + @strCondition + @strOrderBy
EXECUTE (@strQuery + @strCondition + @strOrderBy)
推荐答案
您的输入日期是英国日期格式使用CONVERT(VARCHAR,T.CreateDateTime,103)
进行所有日期比较。
它将起作用。
your input date is British date format use CONVERT(VARCHAR, T.CreateDateTime,103)
for all date comparison.
its will be work.
这篇关于我们如何根据日期和员工ID与商店程序显示报告。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文