sql
alter PROCEDURE [dbo].[sp_DAL_BrushCardInfo3]
@dtime1 nvarchar(10),--開始時間
@dtime2 nvarchar(10),--結束時間
@part nvarchar(30),--部門代碼
@per001 nvarchar(30)--員工工號
AS
declare @strBasic nvarchar(1000)--基本字符串1
declare @strBasic2 nvarchar(1000)--基本字符串2
declare @strSql nvarchar(1500)--最終執行語句
BEGIN
SET NOCOUNT ON;
if(month(@dtime1)<10)
begin
set @strBasic=' select empid,cardid,Per005,machinesnum,STATE, cast(dtime as datetime) as dtime from WF_BS_PersonInfo right join '
set @strBasic2 =@strBasic+'[MT-FTP-NB].[KS-EXCHANGE-DB].[dbo].[coll'+cast(year(@dtime1)as nvarchar(4))+'0'+cast(month(@dtime2)as nvarchar(1))+'] '
set @strSql =@strBasic2+'on empid =Per001 where empid ='''+@per001+''' and (Per005 ='''+@part+''' )and cast(dtime as datetime) between '''+ @dtime1 +''' and '''+ @dtime2+''''
end--convert(nvarchar(12),cast(dtime as datetime),120 )
else
begin
set @strBasic=' select empid,cardid,Per005,machinesnum,STATE, cast(dtime as datetime) as dtime from WF_BS_PersonInfo right join '
set @strBasic2 =@strBasic+'[MT-FTP-NB].[KS-EXCHANGE-DB].[dbo].[coll'+cast(year(@dtime1)as nvarchar(4))+cast(month(@dtime2)as nvarchar(2))+'] '
set @strSql =@strBasic2+'on empid =Per001 where empid like'''+@per001+'%'' and (Per005 like'''+@part+'%'' )and cast(dtime as datetime) between '''+ @dtime1 +''' and '''+ @dtime2+''''
end
exec @strSql
END
select empid,cardid,Per005,machinesnum,STATE, convert(nvarchar(19),cast(dtime as datetime),120 ) from WF_BS_PersonInfo right join [MT-FTP-NB].[KS-EXCHANGE-DB].[dbo].[coll200904] on empid =Per001 where empid like'534929%' and (Per005 like'%' )and convert(nvarchar(12),cast(dtime as datetime),120 ) between '2009-4-1' and '2009-4-10'