AccessTr.neT

Tam Versiyon: Sorguda 2. Tablodan Sadece 1 Kayıt (en Üstteki Kayıt)
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
Kıymetli Hocalarım merhaba

Eli dosyada tbl_Orders ve tbl_OrderMaterials adında iki tablo mevcut, Order_ID değerleri üzerinden eşleştirme yapıyorum.

yer alan sorguda tbl_OrderMaterials tablosundan sadece 1 kayıt( en üsteki) kayıt gelecek şekilde düzenlemeye çalıştım ama;

Özetle her bir Order Numarasına ait 1 kayıt gelecek.

Kod:
SELECT tbl_Orders.ID, tbl_Orders.SuppNumber, tbl_Orders.SiteID, tbl_Orders.SiteName, tbl_Orders.SupplierName, tbl_Orders.OrderDate, First(tbl_OrderMaterials.MaterialName) AS Material
FROM tbl_Orders LEFT JOIN tbl_OrderMaterials ON tbl_Orders.ID = tbl_OrderMaterials.Order_ID;


desteğiniz için şimdiden teşekkürler,
iyi Çalışmalar.
Merhaba
Sorgu tasarım penceresinde ilişkinin türünü her 2 taboladan eşleşen kayıtları göster olarak ayarlayn.
(21/08/2025, 14:33)onur_can yazdı: [ -> ]Merhaba
Sorgu tasarım penceresinde ilişkinin türünü her 2 taboladan eşleşen kayıtları göster olarak ayarlayn.
Hocam ilginiz için teşekkürler,

yalnız Material boş olanları da getirmesi gerekiyor, onları boş kayıt;
özetle Order ID' de tüm kayıtlar gelmeli, material olanlarda 1 kayıt, olmayanlar boş olarak gelmeli

iyi Çalışmalar dilerim.
açıklamanız yetersiz, her 2 tabloyla bu işlemi yapmak için 2 tablo arasında ilişki kurmalısınız, ilişkide kurulmamış, ayrıca boş derken bir alandan mı bahsediyorsunuz, hangi tablonun hangi alanı boş olanlar?
aşağıdakine benzer bir sorgu işinizi görebiir
ben tek sorgu olarak tasarladım ama siz 2 sorgunun birleşimi olarak da tasarlayabilirsiniz
SELECT
xSQL.ID,
xSQL.SuppNumber,
xSQL.SiteID,
xSQL.SiteName,
xSQL.SupplierName,
OrderDate,
tbl_OrderMaterials.MaterialName
FROM
(
SELECT
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate,
Min(tbl_OrderMaterials.ID) AS EnAzID
FROM
tbl_Orders
LEFT JOIN tbl_OrderMaterials ON tbl_Orders.ID = tbl_OrderMaterials.Order_ID
GROUP BY
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate
) AS xSQL
LEFT JOIN tbl_OrderMaterials ON xSQL.EnAzID = tbl_OrderMaterials.ID;
_______________________________________________________________________
yada 2 sorgu halinde
önce AraSQL adında sorgu oluşturup aşağıda kodu girin
SELECT
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate,
Min(tbl_OrderMaterials.ID) AS EnAzID
FROM
tbl_Orders
LEFT JOIN tbl_OrderMaterials ON tbl_Orders.ID = tbl_OrderMaterials.Order_ID
GROUP BY
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate;
sonra da aşağıdaki sorguy oluşturmayı deneyin
SELECT
AraSQL.ID,
AraSQL.SuppNumber,
AraSQL.SiteID,
AraSQL.SiteName,
AraSQL.SupplierName,
OrderDate,
tbl_OrderMaterials.MaterialName
FROM
AraSQL
LEFT JOIN tbl_OrderMaterials ON AraSQL.EnAzID = tbl_OrderMaterials.ID;
dilerim işinize yarar
(21/08/2025, 15:30)berduş yazdı: [ -> ]aşağıdakine benzer bir sorgu işinizi görebiir
ben tek sorgu olarak tasarladım ama siz 2 sorgunun birleşimi olarak da tasarlayabilirsiniz
SELECT
xSQL.ID,
xSQL.SuppNumber,
xSQL.SiteID,
xSQL.SiteName,
xSQL.SupplierName,
OrderDate,
tbl_OrderMaterials.MaterialName
FROM
(
SELECT
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate,
Min(tbl_OrderMaterials.ID) AS EnAzID
FROM
tbl_Orders
LEFT JOIN tbl_OrderMaterials ON tbl_Orders.ID = tbl_OrderMaterials.Order_ID
GROUP BY
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate
) AS xSQL
LEFT JOIN tbl_OrderMaterials ON xSQL.EnAzID = tbl_OrderMaterials.ID;
_______________________________________________________________________
yada 2 sorgu halinde
önce AraSQL adında sorgu oluşturup aşağıda kodu girin
SELECT
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate,
Min(tbl_OrderMaterials.ID) AS EnAzID
FROM
tbl_Orders
LEFT JOIN tbl_OrderMaterials ON tbl_Orders.ID = tbl_OrderMaterials.Order_ID
GROUP BY
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate;
sonra da aşağıdaki sorguy oluşturmayı deneyin
SELECT
AraSQL.ID,
AraSQL.SuppNumber,
AraSQL.SiteID,
AraSQL.SiteName,
AraSQL.SupplierName,
OrderDate,
tbl_OrderMaterials.MaterialName
FROM
AraSQL
LEFT JOIN tbl_OrderMaterials ON AraSQL.EnAzID = tbl_OrderMaterials.ID;
dilerim işinize yarar

Teşekkürler Hocam ,
tam istediğim gibi oldu ...

iyi çalışmalar dilerim.
Sayfalar: 1 2