我的存储过程如下:
ALTER procedure [dbo].[Driverperformance]
@Ecode nvarchar(50),
@startdate datetime,
@enddate datetime
as begin
SELECT e.Ecode, CAST(q.dtime AS DATE) as Date , e.Ename, count(q.Ecode) CntEcode
FROM EmployeeMaster_tbl e
JOIN Transaction_tbl q
ON e.Ecode = q.Ecode
where q.Ecode=@Ecode and dtime >= '' + @startdate +'' and dtime <= ''+@enddate +''
group by e.Ecode, e.Ename, CAST(q.dtime AS date)
ORDER BY CAST(q.dtime AS date)--e.Ecode DESC
end
我在事务表名称(q.Ecode)中多了一个字段.i想要计数( DelEcode )同样的way.sam方式意味着我如何计算Ecode的计数我必须计算DelEcode aslos.so我必须计算在我当前存储的procedure..while执行中所做的更改输出如下所示:但我想再获得一个列cntDelcode,因为我想显示DelEcode的计数
发布于 2013-09-04 13:36:52
下面的代码让用户可以选择是查询ECODE还是DELECODE:
ALTER procedure [dbo].[Driverperformance]
@code nvarchar(50),
@startdate datetime,
@enddate datetime,
@test VARCHAR(1)
as
IF @test = 1 BEGIN
SELECT e.Ecode, CAST(q.dtime AS DATE) as Date , e.Ename, count(q.Ecode) CntEcode
FROM EmployeeMaster_tbl e
JOIN Transaction_tbl q
ON e.Ecode = q.Ecode
where q.Ecode=@code and dtime >= '' + @startdate +'' and dtime <= ''+@enddate +''
group by e.Ecode, e.Ename, CAST(q.dtime AS date)
ORDER BY CAST(q.dtime AS date)--e.Ecode DESC
END
ELSE
BEGIN
SELECT e.delEcode, CAST(q.dtime AS DATE) as Date , e.Ename, count(q.delEcode) Cntcode
FROM EmployeeMaster_tbl e
JOIN Transaction_tbl q
ON e.delEcode = q.delEcode
where q.delEcode=@code and dtime >= '' + @startdate +'' and dtime <= ''+@enddate +''
group by e.delEcode, e.Ename, CAST(q.dtime AS date)
ORDER BY CAST(q.dtime AS date)--e.Ecode DESC
END
END
这是未经测试的,但您可以看到我要去哪里。额外的输入允许用户选择要测试的字段。
发布于 2013-09-04 14:17:58
您还可以运行以下代码:
ALTER procedure [dbo].[Driverperformance]
@Ecode nvarchar(50),
@startdate datetime,
@enddate datetime,
@test bit=0
as begin
SELECT e.Ecode, CAST(q.dtime AS DATE) as Date , e.Ename, case when @test=1 then count(q.Ecode) else count(q.delCode) end as CntEcode
FROM EmployeeMaster_tbl e
JOIN Transaction_tbl q
ON e.Ecode = q.Ecode
where q.Ecode=@Ecode and dtime >= '' + @startdate +'' and dtime <= ''+@enddate +''
group by e.Ecode, e.Ename, CAST(q.dtime AS date)
ORDER BY CAST(q.dtime AS date)--e.Ecode DESC
end
https://stackoverflow.com/questions/18615128
复制