我收到此错误> TOP N或FETCH行数值可能不是负数。
我在代码的这一部分中收到此错误。请帮助>>
Select
A2.Employee_Name,
A2.User_Name,
A2.User_Code,
A2.User_Type_Name,
A2.Region_Name,
A2.Region_Code,
A2.Division_Name,
[A3.Day_Count]-[A2.Sunday]-[A2.Holiday] "Total_Days",
IsNull(A4.Reported_Days,0) "Reported_Days",
IsNUll((A5.Non_Reported_Days)-IsNull((A6.Holiday_Count),0),0) "Non_Reported_Days",
Round((Convert(Float,(A4.Reported_Days))/Convert(Float,((A3.Day_Count)-(A2.Sunday)-(A2.Holiday)))*100),0) "Percentage"
From
(
Select
A1.Employee_Name,
A1.User_Name,
A1.User_Code,
A1.User_Type_Name,
A1.Region_Name,
A1.Region_Code,
A1.Division_Name,
Sum(Case When A1.Days = 1 And A1.Holiday = ''0'' Then 1 Else 0 End) "Sunday",
Sum(Case When A1.Holiday <> ''0'' Then 1 Else 0 End) "Holiday"
From
(
Select
E.Employee_Name,
U.User_Code,
U.User_Name,
UT.User_Type_Name,
R.Region_Name,
R.Region_Code,
D.Division_Name,
Datepart(W,D1.Date_Val) "Days",
IsNull(H.Holiday_Name,0)"Holiday"
From
Tbl_Sfa_User_Master U With(Nolock)
Inner Join Tbl_Sfa_Employee_Master E With(Nolock) On (E.Employee_Code = U.Employee_Code)
Inner Join Tbl_Sfa_User_Type_Master UT With(Nolock) On (UT.User_Type_Code = U.User_Type_Code and UT.User_Type_Category <> ''NON_FIELD_USER'')
Inner Join Tbl_Sfa_Region_Master R With(Nolock) On (R.Region_Code = U.Region_Code And R.Region_Status=1)
Inner Join Tbl_Sfa_Division_Entity_Mapping DE With(Nolock) On (DE.Entity_Code = U.User_Code And DE.Entity_Type=''User'')
Inner Join Tbl_Sfa_Division_Master D With(Nolock) On (D.Division_Code = DE.Division_Code And D.Record_Status=1'
If @Division_Name <> ''
Set @Ins_Tbl = @Ins_Tbl + 'And D.Division_Name ='''+@Division_Name+''' '
Set @Ins_Tbl = @Ins_Tbl +')
Inner Join @DW D1 On (1=1)
Left Outer Join Tbl_Sfa_Holiday_Master H With(Nolock) On (H.Region_Code = R.Region_Code and Convert(Date,H.Holiday_Date) = D1.Date_Val And H.Holiday_Status = 0)
Where U.User_Status=1
)A1
Group By
A1.Employee_Name,
A1.User_Code,
A1.User_Name,
A1.User_Type_Name,
A1.Region_Name,
A1.Region_Code,
A1.Division_Name)A2
Left Outer Join
(Select
B.User_Code,
Count(A.Date_Val) "Day_Count"
From
@DW A
Inner Join Tbl_Sfa_User_Master B With(Nolock) On (1=1)
Where B.User_Status=1
Group By B.User_Code) A3 On (A3.User_Code = A2.User_Code)
Left Outer Join
(Select
U.User_Code,
Count(Distinct D.DCR_Code) "Reported_Days"
From
@R_Days A
Inner Join Tbl_sfa_User_Master U With(Nolock) On (1=1)
Inner Join Tbl_Sfa_User_Type_Master UT With(Nolock) On (UT.User_Type_Code = U.User_Type_Code And User_Type_Category <> ''NON_FIELD_USER'')
Inner Join Tbl_Sfa_DCR_Master D With(Nolock) On (D.User_Code = U.User_Code And D.DCR_Actual_Date = A.Date_Val And D.DCR_Status In (''1'',''2''))
Where U.User_Status=1
Group By U.User_Code)A4 On (A4.User_Code = A2.User_Code)
Left Outer Join
(Select
U.User_Code,
Sum(Case When A.Date_Val=D.DCR_Actual_Date Then 0 Else 1 End) "Non_Reported_Days"
From
@R_Days A
Inner Join Tbl_sfa_User_Master U With(Nolock) On (1=1)
Inner Join Tbl_Sfa_User_Type_Master UT With(Nolock) On (UT.User_Type_Code = U.User_Type_Code And User_Type_Category <> ''NON_FIELD_USER'')
Left Outer Join Tbl_Sfa_DCR_Master D With(Nolock) On (D.User_Code = U.User_Code And D.DCR_Actual_Date = A.Date_Val And D.DCR_Status In (''1'',''2''))
Where U.User_Status=1
Group By U.User_Code)A5 On (A5.User_Code = A2.User_Code)
Left Outer Join
(Select
U.User_Code,
Count(H.Holiday_Code) "Holiday_Count"
From
Tbl_Sfa_User_Master U
Inner Join Tbl_Sfa_Region_Master R On (R.Region_Code = U.Region_Code And R.Region_Status=1)
Inner Join Tbl_Sfa_Holiday_Master H On (H.Region_Code = R.Region_Code And H.Holiday_Date Between '''+@Start_Date+''' and '''+@End_Date+''' and H.Holiday_Status=''0'')
Where U.User_Status=1
Group By
U.User_Code)A6 On (A6.User_Code = A5.User_Code)
答案 0 :(得分:0)
看起来问题就在这里,语法
Set @Ins_Tbl = @Ins_Tbl + 'And D.Division_Name ='''+@Division_Name+''' '
你应该在&#39;之间留一个空格。和,作为,
Set @Ins_Tbl = @Ins_Tbl + ' And D.Division_Name ='''+@Division_Name+''' '
如果有效,请尝试