|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-03-15 : 05:00:07
|
| [code]-- prepare sample datadeclare @leavecredits table (empdcno int, type varchar(2), dateassigned datetime, earnedDay money, availedDay money)insert @leavecreditsselect 222, 'SL', '3/4/2007', 8.0, 2.0 union allselect 222, 'PL', '4/4/2007', 8.0, 2.0 union allselect 222, 'ML', '5/4/2007', 8.0, 0.0 union allselect 333, 'PL', '6/4/2007', 8.0, 3.0 union allselect 444, 'SL', '4/6/2007', 8.0, 1.0declare @leaveledger table (empdcno int, leavedate datetime, hrsleave money, hrswork money, type varchar(2))insert @leaveledgerselect 222, '6/4/2007', 2.0, 8.0, 'SL' union allselect 222, '6/5/2007', 8.0, 8.0, 'SL' union allselect 222, '6/6/2007', 8.0, 8.0, 'SL' union allselect 222, '6/7/2007', 8.0, 8.0, 'SL' union allselect 222, '6/8/2007', 8.0, 8.0, 'SL' union allselect 222, '6/9/2007', 8.0, 8.0, 'SL' union allselect 333, '6/7/2007', 8.0, 8.0, 'PL'-- Show the expected resultSELECT EmpDcNo, Type, DateAssigned, EarnedDay, SUM(EarnedHrs) AS EarnedHrs, AvailedDay, AvailedHrs, BalDay, BalHoursFROM ( SELECT c.EmpDcNo, c.Type, c.DateAssigned, c.EarnedDay, l.HrsLeave AS EarnedHrs, c.AvailedDay AS AvailedDay, c.AvailedDay * l.HrsWork AS AvailedHrs, c.EarnedDay - c.AvailedDay AS BalDay, (c.EarnedDay - c.AvailedDay) * l.HrsWork AS BalHours FROM @LeaveCredits AS c INNER JOIN @LeaveLedger AS l ON l.EmpDcNo = c.EmpDcNo AND l.Type = c.Type ) AS xGROUP BY EmpDcNo, Type, DateAssigned, EarnedDay, AvailedDay, AvailedHrs, BalDay, BalHoursORDER BY EmpDcNo, Type[/code]Peter LarssonHelsingborg, Sweden |
 |
|