Forum
aşağıdaki gibi bir sql tablom var.
No StartDate EndDate Budget
1 01.10.2019 07.10.2019 70000
2 08.10.2019 14.10.2019 35000
aşağıdaki gibi bir sonuç almak istiyorum SQL tarafında yardımcı olabilecek varsa sevinirim.
No Date Budget
1 1.10.2019 10000
1 2.10.2019 10000
1 3.10.2019 10000
1 4.10.2019 10000
1 5.10.2019 10000
1 6.10.2019 10000
1 7.10.2019 10000
2 8.10.2019 5000
2 9.10.2019 5000
2 10.10.2019 5000
2 11.10.2019 5000
2 12.10.2019 5000
2 13.10.2019 5000
2 14.10.2019 5000
Merhabalar,
Aşağıdaki sorguyu deneyebilir misiniz ?
If(OBJECT_ID('tempdb..#TABLOBILGILERI') Is Not Null)
Begin
Drop Table #TABLOBILGILERI
End
;
CREATE TABLE #TABLOBILGILERI(
NO INT NULL,
StartDate DATETIME ,
EndDate DATETIME ,
Budget FLOAT NULL
)
;
INSERT INTO #TABLOBILGILERI
SELECT '1',CONVERT(DATE,'01.10.2019',104),CONVERT(DATE,'07.10.2019',104),'70000' UNION ALL
SELECT '2',CONVERT(DATE,'08.10.2019',104),CONVERT(DATE,'14.10.2019',104),'35000'
;WITH SAYILAR AS (
SELECT 1 AS N UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1
),
DIZISAYI AS (
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) - 1 AS N
FROM SAYILAR AS A, SAYILAR AS B
)
,
LISTE AS (
SELECT
T.Budget,
T.NO,
DATEADD(DAY, T2.N, T.StartDate) AS TARIH
FROM #TABLOBILGILERI AS T
CROSS APPLY (
SELECT TN.N
FROM DIZISAYI AS TN
WHERE TN.N <= DATEDIFF(DAY, T.StartDate, T.EndDate)
) AS T2
)
SELECT
NO,TARIH,CAST(ISNULL(H.Budget/NULLIF(S.SAYI,0),0) AS DECIMAL(38,2)) [BUDGET]
FROM LISTE AS H
CROSS APPLY(SELECT COUNT(*) SAYI FROM LISTE L WHERE L.NO=H.NO) AS S
ORDER BY 1,2
option (maxrecursion 0)
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]
Öncelikle ilginiz için teşekkürler Veday bey, Sql sorgusunu bölüm bölüm açıklama şansınız var mı? Eğer mümkünse sevinirim yanlış bir şey yapmak istemiyorum. üstteki tablomun ismi "rezervasyon" tablosu. Bu tablodan aşağıda gerçekte olmayan bir tablo görüntülemek istiyorum aslında yeni bir tablo yazmak değil.
çok çok teşekkürler kardeşim hallettim yolladığın kod ile.
Merhaba,
Çözümü Tally ile yaptım. İnşAllah bununla ilgili İpucu bölümüne çeşitli örnekler vererek açıklama yaparım müsait bir zamanda.
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]
Teşekkürler tekrardan bekliyoruz Allah'a emanet.