這是我的存儲過程,以獲取在StartDate
和EndDate
之間工作的員工及其小時數的列表。SQL Server存儲過程問題。從數據庫中獲取多個結果
ALTER procedure [dbo].[usp_get_employeehourlyreport]
@startdate datetime,
@enddate datetime
as
begin
select *
from (
select
(select FullName from Registration
where Registration.UserId = UserTime.UserId) Fullname,
ISNULL(SUM(HoursWorked), 0) HoursWorked
from UserTime
where CheckIn between @startdate and @enddate
group by UserId, CheckIn) tbl
end
我得到的結果是:
Fullname HoursWorked
Antonio Jake 0
Antonio Jake 0.016666
所以基本上它會顯示一個額外的行與小時0我沒有在我的數據庫中的任何重複的全名。
表結構是:
USERTIME
:
UserTimeId int Unchecked
UserId int Checked
CheckIn datetime Checked
LoginStatus nvarchar(50) Checked
Day varchar(50) Checked
HoursWorked float Checked
Date nvarchar(50) Checked
REGISTRATION
:
UserId int Unchecked
FullName varchar(50) Checked
Usertime是表名。請參見第一張表。我已經提到過它。並且查詢運行完美,但會產生重複的結果。 – user2525244