Summe pro Jahr

Ich versuche zu berechnen, wie viele Jahre des Dienstes jemand auf Stunden basiert, die sie jedes Jahr gearbeitet haben. Stunden müssen über 2080 ab dem date der Miete zum Jubiläumsdatum jedes Jahr sein. Unten ist, wie ich Setup SQL, um herauszufinden, Stunden pro Jahr, aber müssen das date aktualisieren und laufen für jedes Jahr. Gibt es einen einfacheren path, dies zu tun? Kann ich ein SQL haben, das zusammenfasst, wie viele Jahre jemand über 2080 gearbeitet hat?

SELECT Sum(hours) FROM hours_txn WHERE EMPNO = 1824 and Type = 'WRK' and TransactionDate between '1989-04-15 00:00:00' and '1990-04-15 00:00:00' 

Da du das hartcodierte "date der Miete" entfernen willst, musst du irgendwie umsetzen, um das zu berechnen. In der folgenden Abfrage verwende ich eine (manuell eingestellte) Variable zur Veranschaulichung, wie der Rest Ihrer Abfrage aussehen könnte:

 begin declare @hiredate datetime set @hiredate = '1989-04-15' select count(*) from hours_txn where EMPNO = 1824 and Type = 'WRK' group by datediff(y, @hiredate, TransactionDate) having sum([hours]) > 2080 end go 

Diese group by gibt Ihnen 1 Rekord pro Jahr des Dienstes, und die Filter auf "Jahre über 2080 Stunden", und die count(*) , gut, es zählt 🙂