Forum

SQL server bir tabl...
 
Bildirimler
Hepsini Temizle

[Çözüldü] SQL server bir tabloyu satırlara bölmek

6 Yazılar
2 Üyeler
2 Reactions
1,057 Görüntüleme
(@cenkbaranak)
Gönderiler: 253
Reputable Member
Konu başlatıcı
 

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

 
Gönderildi : 14/10/2019 14:19

(@vedatozerr)
Gönderiler: 65
Trusted Member
 

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]

 
Gönderildi : 14/10/2019 15:18

(@cenkbaranak)
Gönderiler: 253
Reputable Member
Konu başlatıcı
 

@vedatozerr

Ö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. 

 
Gönderildi : 14/10/2019 15:43

(@cenkbaranak)
Gönderiler: 253
Reputable Member
Konu başlatıcı
 

çok çok teşekkürler kardeşim hallettim yolladığın kod ile.

 
Gönderildi : 14/10/2019 16:16

(@vedatozerr)
Gönderiler: 65
Trusted Member
 

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]

 
Gönderildi : 14/10/2019 16:46

(@cenkbaranak)
Gönderiler: 253
Reputable Member
Konu başlatıcı
 

@vedatozerr

Teşekkürler tekrardan bekliyoruz Allah'a emanet.

 
Gönderildi : 17/10/2019 11:52

Paylaş: