Registriert seit: 9. Sep 2002
Ort: Oelsnitz, Vogtland
43 Beiträge
Delphi 12 Athens
|
AW: SQL: Jahresanteile des Vertags berechnen?
12. Jun 2013, 07:02
Ich glaube, es geht kürzer:
SQL-Code:
---
--- Testumgebung ----------------------------------------------------------
---
USE [Test]
GO
CREATE TABLE [dbo].[Contracts](
[ctID] [int] IDENTITY(1,1) NOT NULL,
[ctStart] [smalldatetime] NOT NULL,
[ctDurationMonths] [int] NOT NULL,
[ctPrice] [money] NOT NULL,
[soll] [int] NULL
) ON [PRIMARY]
declare @startPeriod dateTime
declare @EndPeriod DateTime
set @startPeriod='20120101'
set @EndPeriod = '20121231'
--- Abfrage ---------------------------------------------------------------------------
select *, ctPrice*DateDiff(Month, dmin,dmax)/ctDurationMonths as PriceInPeriod
from
(
select *,
(select max (X) from (values (@StartPeriod), (ctStart)) as T(X)) dMin,
(select max (X) from (values (@EndPeriod), (DateAdd(Month, ctDurationMonths, ctStart))) as T(X)) dMax
from contracts
) x
where DateDiff(Month, dmin,dmax)>0
--------------------------------------------------------------------------------------
Was ist das Ergebnis, wenn der Vertrag am 01.06.2013 anfängt und 1 Monat läuft?
Was ist das Ergebnis, wenn der Vertrag am 01.12.2011 anfängt und 3 monate läuft?
:>
Thomas Völker
|
|
Zitat
|