Ich habe ein Problem mit den Spalten jetzt. Das Ergebnis nehme ich an erwarten so sein:SQL Server - Gruppierung zu einer Spalte
EmployeeID EducationalLoan
--------------
1 0.00
2 100.00
aber das Ergebnis zeigt,
EmployeeID EducationalLoan
--------------
1 100.00
2 100.00
Was ich erreicht dieser Zeit bin versucht, ist, dass ich nur die Arbeitnehmerdarlehen Abzug Preis auf sehen wollen auf der anderen Seite zeigt es nur 0.00.
Ich weiß, Theres ein kleiner Trick hinter, Kann mir jemand damit helfen?
DECLARE @EmployeeID AS INTEGER
SET @EmployeeID = 0;
SELECT DISTINCT
[EmployeeID] = emp.EmployeeID,
[EducationalLoan] = (SELECT ISNULL(SUM((CAST((lc.LoanAmount/((dbo.fnNumberOfYears(CONVERT(VARCHAR(15), LoanDateStart, 101), CONVERT(VARCHAR(15), LoanPaymentDue, 101)) * 12) * 2)) AS DECIMAL(18,2)))),0) FROM LoanContract lc WHERE lc.LoanTypeID = 1)
FROM Employee emp
INNER JOIN Salary sal ON sal.EmployeeID = emp.EmployeeID
INNER JOIN LoanContract lc ON lc.EmployeeID = emp.EmployeeID
INNER JOIN LoanType lt ON lt.LoanTypeID = lc.LoanTypeID
LEFT JOIN LoanPayments lp ON lp.LoanID = lc.LoanID
LEFT JOIN LoanFrequency lf ON lf.LoanFrequencyID = lc.LoanFrequencyID
WHERE emp.EmployeeID IN (SELECT EmployeeID FROM Employee WHERE EmployeeID LIKE '%' + CASE WHEN ISNULL(@EmployeeID,0) <> 0 THEN CAST(ISNULL(@EmployeeID, 0) AS VARCHAR(15)) ELSE '' END + '%')
GROUP BY emp.EmployeeID, lt.LoanTypeID
Bitte bearbeiten Sie Ihre Frage Beispieldaten als DDL + DML aufzunehmen. –