Hallo zusammen,
ich habe eine Tabelle wo ich mit zwei Select Abfragen, das STARTDATUM und ENDEDATUM für ein Gerät erhalte.
Aus diesen beiden Abfragen würde ich gerne:
1. eine Tabelle erhalten, wo STARTDATUM und ENDEDATUM enthalten sind.
2. und in diesem Fall bei der letzten Mietphase vom 18.03.22 - Sysdatetime() genommen wird.
Hier die erste SELECT ABFRAGE für das STARTDATUM:
SELECT
S.[ZeiTyp],S.[ArtNr],S.[LText] as Bez,
S.[BSTNr] as BV,
S.[VBstNr] as VonBV,
[ProbauSC].[dbo].[GetRealDate](S.[Datum]) as StartMiete,
S.[KopId] as KopId,
S.[Menge],S.[ME],S.[Einheit],
S.[Preis],S.[Menge]*S.[Preis] as Summe,
Case when(S.ZeiTyp='G')then
(DATEDIFF(day,[ProbauSC].[dbo].[GetRealDate](S.[Datum]),SYSDATETIME())) END as Tage,
Case when (S.ZeiTyp='G')then
(Menge*Preis*(DATEDIFF(day,[ProbauSC].[dbo].[GetRealDate](S.[Datum]),SYSDATETIME()))) END as Miete
FROM[ProbauSC].[dbo].[GERPOS_400]S where(S.[BstNr] = '20146')
and (S.ZeiTyp='G') and (S.ArtNr='29020035001') order by S.KopId,S.ArtNr
ERGEBNISS:
ZeiTyp ArtNr Bez BV VonBV StartMiete KopId Menge ME Einheit Preis Summe Tage Miete
G 29020035001 Transporter 20146 5500 2021-03-29 00:00:00.000 33745 1 1 Stück 3,042 3,042 626 1904,292
G 29020035001 Transporter 20146 20094 2022-02-01 00:00:00.000 35500 1 1 Stück 3,042 3,042 317 964,314
G 29020035001 Transporter 20146 5500 2022-03-18 00:00:00.000 35679 1 1 Stück 3,042 3,042 272 827,424
Hier die zweite SELECT ABFRAGE für das ENDDATUM:
SELECT
E.[ZeiTyp],E.[ArtNr],E.[LText] as Bez,
E.[BSTNr] as BV,
E.[VBstNr] as VonBV,
[ProbauSC].[dbo].[GetRealDate](E.[Datum]) as EndeMiete,
E.[KopId] as KopId,
E.[Menge],E.[ME],E.[Einheit],
E.[Preis],E.[Menge]*E.[Preis] as Summe,
Case when(ZeiTyp='G')then
(DATEDIFF(day,[ProbauSC].[dbo].[GetRealDate](E.[Datum]),SYSDATETIME())) END as Tage,
Case when (E.ZeiTyp='G')then
(Menge*Preis*(DATEDIFF(day,[ProbauSC].[dbo].[GetRealDate](E.[Datum]),SYSDATETIME()))) END as Miete
FROM[ProbauSC].[dbo].[GERPOS_400] E where(E.[VBstNr] = '20146')
and (E.ZeiTyp='G') and (E.ArtNr='29020035001') order by E.KopId,E.ArtNr
ERGEBNISS:
ZeiTyp ArtNr Bez BV VonBV EndeMiete KopId Menge ME Einheit Preis Summe Tage Miete
G 29020035001 Transporter 20094 20146 2021-05-17 00:00:00.000 33983 1 1 Stück 3,042 3,042 577 1755,234
G 29020035001 Transporter 5500 20146 2022-03-14 00:00:00.000 35653 1 1 Stück 3,042 3,042 276 839,592
ZIEL ist es eine Tabelle die so aussieht:
ZeiTyp ArtNr Bez BV VonBV StartMiete EndeMiete Menge ME Einheit Preis Summe Tage Miete
G 29020035001 Transporter 20146 5500 2021-03-29 00:00:00.000 2021-05-17 00:00:00.0000000 1 1 Stück 3,042 3,042 626 1904,292
G 29020035001 Transporter 20146 20094 2022-02-01 00:00:00.000 2022-03-14 00:00:00.0000000 1 1 Stück 3,042 3,042 317 964,314
G 29020035001 Transporter 20146 5500 2022-03-18 00:00:00.000 2022-12-15 12:17:50.3312609 1 1 Stück 3,042 3,042 272 827,424
Mietzeitraum
1. 29.03.21 - 17.05.21
2. 01.02.22 - 14.03.22
3. 18.03.22 - HEUTE >> sysdatetime()
ich habe eine Tabelle wo ich mit zwei Select Abfragen, das STARTDATUM und ENDEDATUM für ein Gerät erhalte.
Aus diesen beiden Abfragen würde ich gerne:
1. eine Tabelle erhalten, wo STARTDATUM und ENDEDATUM enthalten sind.
2. und in diesem Fall bei der letzten Mietphase vom 18.03.22 - Sysdatetime() genommen wird.
Hier die erste SELECT ABFRAGE für das STARTDATUM:
SELECT
S.[ZeiTyp],S.[ArtNr],S.[LText] as Bez,
S.[BSTNr] as BV,
S.[VBstNr] as VonBV,
[ProbauSC].[dbo].[GetRealDate](S.[Datum]) as StartMiete,
S.[KopId] as KopId,
S.[Menge],S.[ME],S.[Einheit],
S.[Preis],S.[Menge]*S.[Preis] as Summe,
Case when(S.ZeiTyp='G')then
(DATEDIFF(day,[ProbauSC].[dbo].[GetRealDate](S.[Datum]),SYSDATETIME())) END as Tage,
Case when (S.ZeiTyp='G')then
(Menge*Preis*(DATEDIFF(day,[ProbauSC].[dbo].[GetRealDate](S.[Datum]),SYSDATETIME()))) END as Miete
FROM[ProbauSC].[dbo].[GERPOS_400]S where(S.[BstNr] = '20146')
and (S.ZeiTyp='G') and (S.ArtNr='29020035001') order by S.KopId,S.ArtNr
ERGEBNISS:
ZeiTyp ArtNr Bez BV VonBV StartMiete KopId Menge ME Einheit Preis Summe Tage Miete
G 29020035001 Transporter 20146 5500 2021-03-29 00:00:00.000 33745 1 1 Stück 3,042 3,042 626 1904,292
G 29020035001 Transporter 20146 20094 2022-02-01 00:00:00.000 35500 1 1 Stück 3,042 3,042 317 964,314
G 29020035001 Transporter 20146 5500 2022-03-18 00:00:00.000 35679 1 1 Stück 3,042 3,042 272 827,424
Hier die zweite SELECT ABFRAGE für das ENDDATUM:
SELECT
E.[ZeiTyp],E.[ArtNr],E.[LText] as Bez,
E.[BSTNr] as BV,
E.[VBstNr] as VonBV,
[ProbauSC].[dbo].[GetRealDate](E.[Datum]) as EndeMiete,
E.[KopId] as KopId,
E.[Menge],E.[ME],E.[Einheit],
E.[Preis],E.[Menge]*E.[Preis] as Summe,
Case when(ZeiTyp='G')then
(DATEDIFF(day,[ProbauSC].[dbo].[GetRealDate](E.[Datum]),SYSDATETIME())) END as Tage,
Case when (E.ZeiTyp='G')then
(Menge*Preis*(DATEDIFF(day,[ProbauSC].[dbo].[GetRealDate](E.[Datum]),SYSDATETIME()))) END as Miete
FROM[ProbauSC].[dbo].[GERPOS_400] E where(E.[VBstNr] = '20146')
and (E.ZeiTyp='G') and (E.ArtNr='29020035001') order by E.KopId,E.ArtNr
ERGEBNISS:
ZeiTyp ArtNr Bez BV VonBV EndeMiete KopId Menge ME Einheit Preis Summe Tage Miete
G 29020035001 Transporter 20094 20146 2021-05-17 00:00:00.000 33983 1 1 Stück 3,042 3,042 577 1755,234
G 29020035001 Transporter 5500 20146 2022-03-14 00:00:00.000 35653 1 1 Stück 3,042 3,042 276 839,592
ZIEL ist es eine Tabelle die so aussieht:
ZeiTyp ArtNr Bez BV VonBV StartMiete EndeMiete Menge ME Einheit Preis Summe Tage Miete
G 29020035001 Transporter 20146 5500 2021-03-29 00:00:00.000 2021-05-17 00:00:00.0000000 1 1 Stück 3,042 3,042 626 1904,292
G 29020035001 Transporter 20146 20094 2022-02-01 00:00:00.000 2022-03-14 00:00:00.0000000 1 1 Stück 3,042 3,042 317 964,314
G 29020035001 Transporter 20146 5500 2022-03-18 00:00:00.000 2022-12-15 12:17:50.3312609 1 1 Stück 3,042 3,042 272 827,424
Mietzeitraum
1. 29.03.21 - 17.05.21
2. 01.02.22 - 14.03.22
3. 18.03.22 - HEUTE >> sysdatetime()