Skip to main content

AccessTr.neT


Sorguda Dikey Alanı Yatay Olarak Düzenlemek

Sorguda Dikey Alanı Yatay Olarak Düzenlemek

Çözüldü #1
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.
.rar Db2.rar (Dosya Boyutu: 70,85 KB | İndirme Sayısı: 3)
truhi, 29-09-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#2
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;
 İyi olan tek şey bilgi ve kötü olan tek şey de cehalettir. (Sokrates)
Cevapla
#3
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.
Cevapla
#4
(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
truhi, 29-09-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#5
Rica ederim, iyi çalışmalar.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task