En iyi yanıtlayıcılar
null değer hk..

Soru
-
mrb,
Aşağdaki sorguda null deper için her kolonda 'coalesce' yazmak dogru mu, bunun kısa yazım şekli var mı,aceba,
SELECT Adi,Soyadi, pType, COALESCE(X.[1], 0) as [1],COALESCE(X.[2], 0) as [2],COALESCE(X.[3], 0) as [3],COALESCE(X.[4], 0) as [4] FROM ( SELECT -- FROM [dbo].[Puanlar] ) x join Personeller P on x.PId=P.Id PIVOT( SUM(Puan) FOR [GUN] IN([1],[2],[3],[4])) AS X;
Yanıtlar
-
Null ile 0 ayni şey degil. null iken o gun deger yok demek. Senin icin ayni anlama geliyorsa, nasıl istersen onu yapabilirsin. Ornek: (an altta iki farklı select var):
DECLARE @Cariler TABLE ( CariNo INT IDENTITY PRIMARY KEY , AdiSoyadi VARCHAR(20) ); DECLARE @Hareketler TABLE ( HareketNo INT IDENTITY PRIMARY KEY, CariNo INT, Tarih DATETIME , Miktar INT ); INSERT @Cariler (AdiSoyadi) VALUES ('Ahmet'), ('Mehmet'), ('Can'), ('Levent'), ('Huseyin'), ('Suat'); INSERT @Hareketler (CariNo, Tarih, Miktar) VALUES (1, '20200101', 10), (1, '20200102', 20), (1, '20200103', 30), (2, '20200101', 10), (3, '20200102', 20), (4, '20200103', 30); WITH data AS ( SELECT [h].[CariNo], DAY([h].[Tarih]) AS gun, [h].[Miktar] FROM @Hareketler AS [h] ), pivoted AS ( SELECT CariNo, [1], [2], [3] FROM data PIVOT ( SUM(Miktar) FOR [gun] IN ( [1], [2], [3] ) ) pvt ) SELECT c.[AdiSoyadi], [1], [2], [3] --SELECT c.[AdiSoyadi], COALESCE([1],0) [1], COALESCE([2],0) [2], COALESCE([3],0) [3] FROM @Cariler AS [c] left JOIN pivoted ON [c].[CariNo] = [pivoted].[CariNo];
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.
Not: Temelin geri zekalı arkadaşı Idris bu mesaja da atlayıp ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdiğimi, yardım etmeye calistigimi sorgulamaktır. Bu beyinsiz zavallıya, aptal olduğunu hatırlatmayı unutmayınız.- Yanıt Olarak İşaretleyen canleveent 14 Nisan 2020 Salı 17:51
-
Kisa yol demissin, sonradan farkettim. Yani sonuçta 0 yapacak isen, hepsine Coalesce() yazmak yerine bastan 0 veriyi ayarlayabilirsin:
DECLARE @Cariler TABLE ( CariNo INT IDENTITY PRIMARY KEY , AdiSoyadi VARCHAR(20) ); DECLARE @Hareketler TABLE ( HareketNo INT IDENTITY PRIMARY KEY, CariNo INT, Tarih DATETIME , Miktar INT ); INSERT @Cariler (AdiSoyadi) VALUES ('Ahmet'), ('Mehmet'), ('Can'), ('Levent'), ('Huseyin'), ('Suat'); INSERT @Hareketler (CariNo, Tarih, Miktar) VALUES (1, '20200101', 10), (1, '20200102', 20), (1, '20200103', 30), (2, '20200101', 10), (3, '20200102', 20), (4, '20200103', 30); WITH gunler (gun) AS (SELECT 1 UNION ALL SELECT gun+1 FROM gunler WHERE gun < 3), c_g (CariNo, Gun) AS (SELECT CariNo, gunler.gun FROM gunler CROSS JOIN @Cariler), data (cariNo, Gun, Miktar) AS ( SELECT cg.CariNo, cg.Gun AS gun, COALESCE([h].[Miktar],0) FROM c_g cg LEFT JOIN @Hareketler AS [h] ON cg.CariNo = h.CariNo and cg.gun = DAY(h.Tarih) ), pivoted AS ( SELECT CariNo, [1], [2], [3] FROM data PIVOT ( SUM(Miktar) FOR [gun] IN ( [1], [2], [3] ) ) pvt ) SELECT c.[AdiSoyadi], [1], [2], [3] FROM @Cariler AS [c] left JOIN pivoted ON [c].[CariNo] = [pivoted].[CariNo];
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.
Not: Temelin geri zekalı arkadaşı Idris bu mesaja da atlayıp ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdiğimi, yardım etmeye calistigimi sorgulamaktır. Bu beyinsiz zavallıya, aptal olduğunu hatırlatmayı unutmayınız.- Yanıt Olarak İşaretleyen canleveent 14 Nisan 2020 Salı 17:51
Tüm Yanıtlar
-
Null ile 0 ayni şey degil. null iken o gun deger yok demek. Senin icin ayni anlama geliyorsa, nasıl istersen onu yapabilirsin. Ornek: (an altta iki farklı select var):
DECLARE @Cariler TABLE ( CariNo INT IDENTITY PRIMARY KEY , AdiSoyadi VARCHAR(20) ); DECLARE @Hareketler TABLE ( HareketNo INT IDENTITY PRIMARY KEY, CariNo INT, Tarih DATETIME , Miktar INT ); INSERT @Cariler (AdiSoyadi) VALUES ('Ahmet'), ('Mehmet'), ('Can'), ('Levent'), ('Huseyin'), ('Suat'); INSERT @Hareketler (CariNo, Tarih, Miktar) VALUES (1, '20200101', 10), (1, '20200102', 20), (1, '20200103', 30), (2, '20200101', 10), (3, '20200102', 20), (4, '20200103', 30); WITH data AS ( SELECT [h].[CariNo], DAY([h].[Tarih]) AS gun, [h].[Miktar] FROM @Hareketler AS [h] ), pivoted AS ( SELECT CariNo, [1], [2], [3] FROM data PIVOT ( SUM(Miktar) FOR [gun] IN ( [1], [2], [3] ) ) pvt ) SELECT c.[AdiSoyadi], [1], [2], [3] --SELECT c.[AdiSoyadi], COALESCE([1],0) [1], COALESCE([2],0) [2], COALESCE([3],0) [3] FROM @Cariler AS [c] left JOIN pivoted ON [c].[CariNo] = [pivoted].[CariNo];
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.
Not: Temelin geri zekalı arkadaşı Idris bu mesaja da atlayıp ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdiğimi, yardım etmeye calistigimi sorgulamaktır. Bu beyinsiz zavallıya, aptal olduğunu hatırlatmayı unutmayınız.- Yanıt Olarak İşaretleyen canleveent 14 Nisan 2020 Salı 17:51
-
Kisa yol demissin, sonradan farkettim. Yani sonuçta 0 yapacak isen, hepsine Coalesce() yazmak yerine bastan 0 veriyi ayarlayabilirsin:
DECLARE @Cariler TABLE ( CariNo INT IDENTITY PRIMARY KEY , AdiSoyadi VARCHAR(20) ); DECLARE @Hareketler TABLE ( HareketNo INT IDENTITY PRIMARY KEY, CariNo INT, Tarih DATETIME , Miktar INT ); INSERT @Cariler (AdiSoyadi) VALUES ('Ahmet'), ('Mehmet'), ('Can'), ('Levent'), ('Huseyin'), ('Suat'); INSERT @Hareketler (CariNo, Tarih, Miktar) VALUES (1, '20200101', 10), (1, '20200102', 20), (1, '20200103', 30), (2, '20200101', 10), (3, '20200102', 20), (4, '20200103', 30); WITH gunler (gun) AS (SELECT 1 UNION ALL SELECT gun+1 FROM gunler WHERE gun < 3), c_g (CariNo, Gun) AS (SELECT CariNo, gunler.gun FROM gunler CROSS JOIN @Cariler), data (cariNo, Gun, Miktar) AS ( SELECT cg.CariNo, cg.Gun AS gun, COALESCE([h].[Miktar],0) FROM c_g cg LEFT JOIN @Hareketler AS [h] ON cg.CariNo = h.CariNo and cg.gun = DAY(h.Tarih) ), pivoted AS ( SELECT CariNo, [1], [2], [3] FROM data PIVOT ( SUM(Miktar) FOR [gun] IN ( [1], [2], [3] ) ) pvt ) SELECT c.[AdiSoyadi], [1], [2], [3] FROM @Cariler AS [c] left JOIN pivoted ON [c].[CariNo] = [pivoted].[CariNo];
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.
Not: Temelin geri zekalı arkadaşı Idris bu mesaja da atlayıp ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdiğimi, yardım etmeye calistigimi sorgulamaktır. Bu beyinsiz zavallıya, aptal olduğunu hatırlatmayı unutmayınız.- Yanıt Olarak İşaretleyen canleveent 14 Nisan 2020 Salı 17:51
-
Kisa yol demissin, sonradan farkettim. Yani sonuçta 0 yapacak isen, hepsine Coalesce() yazmak yerine bastan 0 veriyi ayarlayabilirsin:
DECLARE @Cariler TABLE ( CariNo INT IDENTITY PRIMARY KEY , AdiSoyadi VARCHAR(20) ); DECLARE @Hareketler TABLE ( HareketNo INT IDENTITY PRIMARY KEY, CariNo INT, Tarih DATETIME , Miktar INT ); INSERT @Cariler (AdiSoyadi) VALUES ('Ahmet'), ('Mehmet'), ('Can'), ('Levent'), ('Huseyin'), ('Suat'); INSERT @Hareketler (CariNo, Tarih, Miktar) VALUES (1, '20200101', 10), (1, '20200102', 20), (1, '20200103', 30), (2, '20200101', 10), (3, '20200102', 20), (4, '20200103', 30); WITH gunler (gun) AS (SELECT 1 UNION ALL SELECT gun+1 FROM gunler WHERE gun < 3), c_g (CariNo, Gun) AS (SELECT CariNo, gunler.gun FROM gunler CROSS JOIN @Cariler), data (cariNo, Gun, Miktar) AS ( SELECT cg.CariNo, cg.Gun AS gun, COALESCE([h].[Miktar],0) FROM c_g cg LEFT JOIN @Hareketler AS [h] ON cg.CariNo = h.CariNo and cg.gun = DAY(h.Tarih) ), pivoted AS ( SELECT CariNo, [1], [2], [3] FROM data PIVOT ( SUM(Miktar) FOR [gun] IN ( [1], [2], [3] ) ) pvt ) SELECT c.[AdiSoyadi], [1], [2], [3] FROM @Cariler AS [c] left JOIN pivoted ON [c].[CariNo] = [pivoted].[CariNo];
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.
Not: Temelin geri zekalı arkadaşı Idris bu mesaja da atlayıp ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdiğimi, yardım etmeye calistigimi sorgulamaktır. Bu beyinsiz zavallıya, aptal olduğunu hatırlatmayı unutmayınız.