En iyi yanıtlayıcılar
Bir den fazla satır verisini tek satır halinde istenilen yapıda listeleme?

Soru
-
Merhabalar,
Ms sql, aşağıda birim grubu bazlı toplam miktar alıyorum tek satır halinde
ADET<Miktar>1011</Miktar>KG<Miktar>24</Miktar>
fakat benim istediğim yukardaki bizimde değil de bu şekilde almam gerekiyor Adet (Miktar: 110), KG Miktar:24 şeklinde
yani <> arasında istemiyorum nasıl yapabilirim.select REPLACE( ( SELECT RTRIM(pu.UnitName) [data()], CAST(ISNULL(SUM(d.QuantityMain),0) as nvarchar(10)) as Miktar from OrderDetail as d with(nolock) inner join ProductUnits pu on d.UnitID=pu.UnitID where OrderID=31702 group by pu.UnitName FOR XML PATH('') ),' ',',')
Yanıtlar
-
WITH toplam (UnitName, Miktar) AS ( SELECT pu.UnitName, SUM(d.QuantityMain) FROM OrderDetail AS d WITH (NOLOCK) INNER JOIN productUnits pu ON d.UnitId = pu.UnitId WHERE OrderId = 31702 GROUP BY pu.UnitName ) SELECT STUFF(( SELECT ', ' + RTRIM(UnitName) + ' (Miktar:' + LTRIM(STR(Miktar)) + ')' FROM toplam FOR XML PATH('') ),1,2,'') AS [data];
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.- Yanıt Olarak İşaretleyen csharpogreniyorum 3 Ekim 2019 Perşembe 11:19
Tüm Yanıtlar
-
-
-
WITH toplam (UnitName, Miktar) AS ( SELECT pu.UnitName, SUM(d.QuantityMain) FROM OrderDetail AS d WITH (NOLOCK) INNER JOIN productUnits pu ON d.UnitId = pu.UnitId WHERE OrderId = 31702 GROUP BY pu.UnitName ) SELECT STUFF(( SELECT ', ' + RTRIM(UnitName) + ' (Miktar:' + LTRIM(STR(Miktar)) + ')' FROM toplam FOR XML PATH('') ),1,2,'') AS [data];
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.- Yanıt Olarak İşaretleyen csharpogreniyorum 3 Ekim 2019 Perşembe 11:19
-
-
Bu arada unutmadan, SQL Server versiyonunu vermemişsin ve FOR XML PATH ile soruyorsun diye ben oradan devam ettim. Yeni SQL Server versiyonlarında da (2017+) artık STRING_AGG var:
WITH toplam (UnitName, Miktar) AS ( SELECT pu.UnitName, SUM(d.QuantityMain) FROM OrderDetail AS d WITH (NOLOCK) INNER JOIN productUnits pu ON d.UnitId = pu.UnitId WHERE OrderId = 31702 GROUP BY pu.UnitName ) SELECT STRING_AGG( RTRIM(UnitName) + ' (Miktar:' + LTRIM(STR(Miktar)) + ')', ', ') AS [data] FROM toplam;
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.
- Düzenleyen CetinBasoz 3 Ekim 2019 Perşembe 13:08
-