Sorguda Dikey Alanı Yatay Olarak Düzenlemek

26/12/2024, 22:41

truhi

Kıymetli Hocalarım merhaba;

Ekli database' de iki tablodan bir sorgu oluşturmaya çalışıyorum.

Sorgunun mevcut halinde 3 sütun mevcut: "RegisterType", "ProformaMoney" ve "ToplaTotalPrice"

Burada "ProformaMoney" alanını, burada yer alan para birimlerini EURO, USD ve GBP olarak 3 sütun oluşturarak;
her bir para biriminin toplamını alacak şekilde bir sorgu oluşturulabilir mi?

Özetle: "ProformaMoney" sütunu yerine 3 ayrı (xEURO, xUSD, xGBP) sütun olacak ve bu para birimine uyanları kendi sütununda toplamını alacak;
Bu durumda "ToplaTotalPrice" sütununa gerek kalmayacak, çünkü her para birimini kendi sütununda toplamış olacak

Kod:
SELECT tbl_Orders.RegisterType, tbl_Orders.ProformaMoney, SUM(tbl_Products.TotalPrice) AS ToplaTotalPrice
FROM tbl_Orders LEFT JOIN tbl_Products ON tbl_Orders.id = tbl_Products.IE
GROUP BY tbl_Orders.RegisterType, tbl_Orders.ProformaMoney;


Değerli destekleriniz için şimdiden teşekkürler,

iyi Çalışmalar.
26/12/2024, 23:43

onur_can

Bunu çapraz sorguyla yapabilirsiniz. Yapmak istediğiniz sorgu aşağıdaki gibimi olacak.
TRANSFORM Sum(tbl_Orders.Parite) AS ToplaParite
SELECT tbl_Orders.id, tbl_Orders.CompanyName, Sum(tbl_Orders.Parite) AS [Toplam Parite]
FROM tbl_Orders
GROUP BY tbl_Orders.id, tbl_Orders.CompanyName
PIVOT tbl_Orders.ProformaMoney;
27/12/2024, 01:35

atoykan

Kod:
SELECT tbl_Orders.RegisterType, tbl_Orders.ProformaMoney, SUM(tbl_Products.TotalPrice) AS ToplaTotalPrice
FROM tbl_Orders LEFT JOIN tbl_Products ON tbl_Orders.id = tbl_Products.IE
GROUP BY tbl_Orders.RegisterType, tbl_Orders.ProformaMoney;

Sorgunuzdaki alanlar Transform Query için yetersiz o yüzden ufak bir hile yapıp ToplaTotalPrice alanını BirimsizTotal olarak dahil edilerek istediğiniz sonuç büyük ölçüde aşağıdaki sorgu ile alınır.
TRANSFORM Sum(qry_Reports.ToplaTotalPrice) AS Total
SELECT qry_Reports.RegisterType, Sum(qry_Reports.ToplaTotalPrice) AS [BirimsizTotal]
FROM qry_Reports
GROUP BY qry_Reports.RegisterType
PIVOT qry_Reports.ProformaMoney;
İlk sorgunuza dahil edebileceğiniz alan mevcut ise ona göre ayrıca değerlendirilebilir. Yoğunluktan sadece sorgunuza bakabildim çalışmanızı inceleme, mantığını anlamaya çalışma fırsatım yok ne yazıkki şu sıralar.
27/12/2024, 20:20

truhi

(27/12/2024, 01:35)atoykan yazdı:
Kod:
SELECT tbl_Orders.RegisterType, tbl_Orders.ProformaMoney, SUM(tbl_Products.TotalPrice) AS ToplaTotalPrice
FROM tbl_Orders LEFT JOIN tbl_Products ON tbl_Orders.id = tbl_Products.IE
GROUP BY tbl_Orders.RegisterType, tbl_Orders.ProformaMoney;

Sorgunuzdaki alanlar Transform Query için yetersiz o yüzden ufak bir hile yapıp ToplaTotalPrice alanını BirimsizTotal olarak dahil edilerek istediğiniz sonuç büyük ölçüde aşağıdaki sorgu ile alınır.
TRANSFORM Sum(qry_Reports.ToplaTotalPrice) AS Total
SELECT qry_Reports.RegisterType, Sum(qry_Reports.ToplaTotalPrice) AS [BirimsizTotal]
FROM qry_Reports
GROUP BY qry_Reports.RegisterType
PIVOT qry_Reports.ProformaMoney;
İlk sorgunuza dahil edebileceğiniz alan mevcut ise ona göre ayrıca değerlendirilebilir. Yoğunluktan sadece sorgunuza bakabildim çalışmanızı inceleme, mantığını anlamaya çalışma fırsatım yok ne yazıkki şu sıralar.

Teşekkürler Hocam
27/12/2024, 22:52

atoykan

Rica ederim, iyi çalışmalar.