Я хочу показать конкретные данные с определенным количеством данных с использованием SQL.В этом случае должно быть показано только 5 записей, но показано 10 записей, и это те же данные, я действительно не знаю, в чем проблема.Любое тело может помочь решить эту проблему?
Я только что попытался разобраться в коде, запустив каждый из них, но я думаю, что нашел проблему в разделе # TEMPAD

кто-нибудь может подтвердить мою проблему?
--IMAGE : https://imgur.com/a/xgX5hub
DECLARE @Month AS INT = 1
DECLARE @Year AS INT = 2019
DECLARE @EmployeeID AS VARCHAR(16) = '01113'
DECLARE @BranchID AS VARCHAR(16) = ''
DECLARE @DepartmentID AS VARCHAR(16) = ''
SELECT * INTO #TEMPJAMINAN FROM(
SELECT A.EmployeeID, SUM(B.Amount) AS JaminanPaid, SUM(A.Amount) AS TotalJaminan
FROM Loan A
INNER JOIN LoanDetail B ON A.LoanID = B.LoanID
WHERE A.EmployeeID = @EmployeeID AND IsPaid = 1 AND LoanTypeID = '017'
GROUP BY A.EmployeeID
)A
SELECT * INTO #TEMPKOPERASI FROM(
SELECT A.EmployeeID, SUM(B.Amount) AS KoperasiPaid, A.Amount AS TotalKoperasi
FROM Loan A
INNER JOIN LoanDetail B ON A.LoanID = B.LoanID
WHERE A.EmployeeID = @EmployeeID AND IsPaid = 1 AND LoanTypeID = '011' AND A.IsDeleted = 0 AND A.Paid = 1
GROUP BY A.EmployeeID, A.Amount
)A
SELECT *, 2 AS SEQ INTO #TEMPAD FROM(
SELECT A.EmployeeID, C.Name AS 'ADName', 'DEDUCTION' AS [Type], B.Amount
FROM Salary A
INNER JOIN SalaryDeduction B ON A.SalaryID = B.SalaryID
INNER JOIN Deduction C ON B.DeductionID = C.DeductionID
WHERE EmployeeID = @EmployeeID AND A.Month = @Month AND A.Year = @Year
UNION ALL
SELECT A.EmployeeID, C.Name AS 'ADName', 'ALLOWANCE' AS [Type], B.Amount
FROM Salary A
INNER JOIN SalaryAllowance B ON A.SalaryID = B.SalaryID
INNER JOIN Allowance C ON B.AllowanceID = C.AllowanceID
WHERE EmployeeID = @EmployeeID AND A.Month = @Month AND A.Year = @Year
UNION ALL
SELECT A.EmployeeID, E.Name AS 'ADName', 'DEDUCTION' AS [Type], SUM(F.Amount) AS Amount
FROM Employee A
INNER JOIN Branch B ON A.BranchID = B.BranchID
INNER JOIN Department C ON A.DepartmentID = C.DepartmentID
INNER JOIN Loan D ON A.EmployeeID = D.EmployeeID
INNER JOIN LoanDetail F ON D.LoanID = F.LoanID AND (MONTH(F.TransDate) = @Month AND YEAR(F.TransDate) = @Year AND IsPaid = 1)
INNER JOIN LoanType E ON D.LoanTypeID = E.LoanTypeID
WHERE A.IsDeleted = 0 AND A.EndWorking IS NULL AND A.EmployeeID = @EmployeeID
GROUP BY A.EmployeeID, E.Name
)A
SELECT
UPPER(C.Name) AS CompanyName,
C.Address1 AS [Address1],
C.Address2 AS [Address1],
@Year AS [Year],
UPPER(CAST(DATENAME(MONTH,DATEADD(MONTH,@Month,-1)) AS VARCHAR(20))) AS [Month],
B.NIK AS NIKKaryawan,
UPPER(B.Name) AS NamaKaryawan,
UPPER(D.Name) AS Title,
UPPER(E.Name) AS Department,
A.HKS AS TotalHKS,
A.HKA AS TotalHKA,
B.AccountBank AS RekeningKaryawan,
B.BankName AS BankKaryawan,
F.JaminanPaid,
F.TotalJaminan,
G.KoperasiPaid,
G.TotalKoperasi,
A.Netto AS TotalGaji,
VE.ADName,
VE.Type,
VE.Amount,
2 AS SEQ
FROM Salary A
INNER JOIN Employee B ON A.EmployeeID = B.EmployeeID
INNER JOIN Company C ON B.CompanyID = C.CompanyID
INNER JOIN Title D ON B.TitleID = D.TitleID
INNER JOIN Department E ON B.DepartmentID = E.DepartmentID
LEFT JOIN #TEMPJAMINAN F ON A.EmployeeID = F.EmployeeID
LEFT JOIN #TEMPKOPERASI G ON A.EmployeeID = G.EmployeeID
LEFT JOIN #TEMPAD VE ON A.EmployeeID = VE.EmployeeID
WHERE A.EmployeeID = @EmployeeID AND A.IsDeleted = 0
UNION ALL
SELECT
UPPER(C.Name) AS CompanyName,
C.Address1 AS [Address1],
C.Address2 AS [Address1],
@Year AS [Year],
UPPER(CAST(DATENAME(MONTH,DATEADD(MONTH,@Month,-1)) AS VARCHAR(20))) AS [Month],
B.NIK AS NIKKaryawan,
UPPER(B.Name) AS NamaKaryawan,
UPPER(D.Name) AS Title,
UPPER(E.Name) AS Department,
A.HKS AS TotalHKS,
A.HKA AS TotalHKA,
B.AccountBank AS RekeningKaryawan,
B.BankName AS BankKaryawan,
F.JaminanPaid,
F.TotalJaminan,
G.KoperasiPaid,
G.TotalKoperasi,
A.Netto AS TotalGaji,
'GAJI POKOK',
'ALLOWANCE',
B.BasicSalary,
1 AS SEQ
FROM Salary A
INNER JOIN Employee B ON A.EmployeeID = B.EmployeeID
INNER JOIN Company C ON B.CompanyID = C.CompanyID
INNER JOIN Title D ON B.TitleID = D.TitleID
INNER JOIN Department E ON B.DepartmentID = E.DepartmentID
LEFT JOIN #TEMPJAMINAN F ON A.EmployeeID = F.EmployeeID
LEFT JOIN #TEMPKOPERASI G ON A.EmployeeID = G.EmployeeID
WHERE A.EmployeeID = @EmployeeID AND A.IsDeleted = 0
AND (B.DepartmentID = @DepartmentID OR @DepartmentID = '')
AND (B.BranchID = @BranchID OR @BranchID = '')
GROUP BY
DROP TABLE #TEMPAD
DROP TABLE #TEMPJAMINAN
DROP TABLE #TEMPKOPERASI
Я ожидаю вывод 5 данных вместо 10