Nos employés sont une commission payée chaque semaine et en raison d'une structure de bonus, je dois calculer deux semaines de rémunération distinctes, puis ajouter les deux ensemble.
J'ai la déclaration SQL suivante qui obtient les deux premières semaines distinctes p> Cela me fait que cela me donne les données dont j'ai besoin, mais je voudrais combiner les deux résultats dans une table avec les mêmes colonnes, mais avoir certaines des colonnes ajoutées ensemble (commissionnay, ptopay , HolidayPay, Heures supplémentaires, TotalPay). Quelle est la meilleure façon de procéder? J'utilise SQL Server 2008 R2. P> P>
3 Réponses :
Essayez ceci
Faites de votre requête une sous-requête et groupe au niveau "Superquery":
SELECT PerceptionistID, SSNLastFour, sum(CommissionPay), ... FROM ( SELECT PerceptionistID, SSNLastFour, CommissionPay, PTOPay, HolidayPay, Overtime, TotalPay FROM [dbo].fnCalculateCommissionForWeekOf(@MondayOfCurrentWeek) UNION -- Need to get the following week's data and sum the two together SELECT PerceptionistID, SSNLastFour, CommissionPay, PTOPay, HolidayPay, Overtime, TotalPay FROM [dbo].fnCalculateCommissionForWeekOf(@MondayOfFollowingWeek) ) AS X GROUP BY PerceptionistID, SSNLastFour
Que diriez-vous de modifier [DBO] .FncalculaTecommissionForweekof ou de créer une nouvelle fonction qui prend une date de début et de fin. De cette façon, vous pouvez utiliser la même fonction et la même logique, pour courir contre toute période de dates, y compris la semaine dernière, 2 semaines, mois, année, etc. P>