Mükerrrer Kayıtlar

Katılım
3 Nisan 2007
Mesajlar
235
Excel Vers. ve Dili
2003 TR
Veritabanındaki 3 adet tablodan veri alıyorum. Ancak [STOK MALZEMEHAREKET] tablosunda mükerrer kayıt olduğu için alınan veride 2-3 kez takrarlı oluyor ne yapmalıyım?

SELECT DISTINCT SİPARİS.[ÜRÜN NO], SİPARİS.[SIPARIS NO], SİPARİS.[YMAMÜL TANIMI], SİPARİS.SADET, SİPARİS.[FİRMA KODUGELİR], SİPARİS.[MAMÜL KODU], SİPARİS.[MAMÜL TANIMI], SİPARİS.[SİPARİS TARİHİ], SİPARİS.[TESLIM TARIHI], SİPARİS.[SEVK TARİHİ], SİPARİS.[ÜRETİM TARİHİ], SİPARİS.[SİPARİS LTL], SİPARİS.[SİPARİS LEURO], SİPARİS.[SİPARİS LDOLAR], SİPARİS.[DÖVİZ TOPLAM], SİPARİS.HESAPTL, SİPARİS.[TESLİM TL], SİPARİS.[SEVK TL], SİPARİS.YMAMÜLGRUP, SİPARİS.[ÜRETİM TUTARI], SİPARİS.[FATURA NO], SİPARİS.[FATURA TARİHİ], SİPARİS.[FATURA ACIKLAMASI], SİPARİS.[FATURA TUTARI], SİPARİS.KDV, SİPARİS.[KKONTROL TARİHİ], SİPARİS.[KKONTROL YAPILDI], SİPARİS.[YI/YD], SİPARİS.[SİPARİS MALZEME], SİPARİS.KAPANIS, [STOK MALZEMEHAREKET].[TALEP TERMİNİ], [STOK MALZEMEHAREKET].[BİRİM FİYATYTLSTH], [STOK MALZEMEHAREKET].[BİRİM FİYATEUROSTH], [STOK MALZEMEHAREKET].[BİRİM FİYATDOLARSTH], [STOK MALZEMEHAREKET].[SİPARİŞ ADET MALİYETİ], [STOK MALZEMEHAREKET].TEDARİKCİSTH, [STOK MALZEMEHAREKET].TERMİNSTH, [STOK MALZEMEHAREKET].[MALZEME CİNSİSTH], [STOK MALZEMEHAREKET].[İRSALİYE TARİHSTH], [STOK MALZEMEHAREKET].[KAPANIS STH], [RED TUTANAK].[RED ADEDİ], [RED TUTANAK].[RED TARİHİ], [RED TUTANAK].[RED MALZEME], [RED TUTANAK].[RED TUTAR], [RED TUTANAK].TEZGAH, [RED TUTANAK].OPERATOR1, [RED TUTANAK].OPERATOR2, [RED TUTANAK].[RED NEDENİ], [RED TUTANAK].RACIKLAMA
FROM (SİPARİS LEFT JOIN [STOK MALZEMEHAREKET] ON SİPARİS.[ÜRÜN NO]=[STOK MALZEMEHAREKET].[ÜRÜN NOSTH]) LEFT JOIN [RED TUTANAK] ON SİPARİS.[ÜRÜN NO]=[RED TUTANAK].[RÜRÜN NO]
WHERE (((SİPARİS.[FİRMA KODUGELİR])='MCS') AND ((SİPARİS.[FATURA ACIKLAMASI])='PLAN'))
ORDER BY SİPARİS.[SEVK TARİHİ], SİPARİS.[FİRMA KODUGELİR], SİPARİS.[MAMÜL KODU];
 
Son düzenleme:
Katılım
3 Nisan 2007
Mesajlar
235
Excel Vers. ve Dili
2003 TR
Bu konuya cevap verebilecek arkadaşlarımın gözünden kaçmış oşmalı. İlgilenirlerse sevinirim.
 
Katılım
3 Nisan 2007
Mesajlar
235
Excel Vers. ve Dili
2003 TR
Sorguyu biraz daha kısaltarak tekrar sorayım;

SELECT DISTINCT [ÜRÜN NO], [FİRMA KODUGELİR], [MAMÜL KODU], [MAMÜL TANIMI], [SEVK TARİHİ], [FATURA ACIKLAMASI], [MALZEME CİNSİSTH], [KAPANIS STH], RACIKLAMA
FROM (SİPARİS LEFT JOIN [STOK MALZEMEHAREKET] ON SİPARİS.[ÜRÜN NO] = [STOK MALZEMEHAREKET].[ÜRÜN NOSTH]) LEFT JOIN [RED TUTANAK] ON SİPARİS.[ÜRÜN NO] = [RED TUTANAK].[RÜRÜN NO]
WHERE (((SİPARİS.[FİRMA KODUGELİR])='MCS') AND ((SİPARİS.[FATURA ACIKLAMASI])='PLAN'))
ORDER BY SİPARİS.[SEVK TARİHİ], SİPARİS.[FİRMA KODUGELİR], SİPARİS.[MAMÜL KODU];


3 Adet Tablom var;
1- SİPARİS tablom
2- [STOK MALZEMEHAREKET] tablom
3- [RED TUTANAK] Tablom

a- SİPARİS tablosunda her veri bir kez tekrarlanıyor.
b- [STOK MALZEMEHAREKET] tablosunda aynı ürün için birden fazla stok temin edilebildiğinden SİPARİS tablosundaki bir ürün için 2-3 çeşit stok alındığından mükerrer tekrarlar var. Left Join komutu ile mükerrer kayıtların sadece birinin alınmasını sağlamıştık.
3- SORU: [RED TUTANAK] Tablosunda aynı ürün için birden fazla Red olabildiğinden SİPARİS tablosundaki bir ürün için 2-3 Red olabildiğinden mükerrer tekrarlar var. Left Join komutu ile mükerrer kayıtların sadece birinin alınmasını sağlayamadım. Ne yapmalıyım
 
Katılım
3 Nisan 2007
Mesajlar
235
Excel Vers. ve Dili
2003 TR
Örnek Bir Veritabanı ve Sorgu ile sorumu yine tekralıyım

SELECT Tablo1.[Mamül Kodu], Tablo1.[Sipariş Adet], Tablo2.[Stok Adı], Tablo2.[Stok Adet], Tablo3.[Red Sebep], Tablo3.[Red Adet]
FROM Tablo3 RIGHT JOIN (Tablo1 LEFT JOIN Tablo2 ON Tablo1.[Ürün No] = Tablo2.[Ürün No]) ON Tablo3.[Ürün No] = Tablo1.[Ürün No];


Tablo1'deki tüm kayıtlar'a karşılık Tablo2 ve Tablo3'deki birer kayıt çağrılmalı. Ancak bunu yapamadım. Gördüğünüz üzere Tablo1'deki 323 EC 246 nolu ürün ile ilgili sadece bir kayıt listelenmesini istediğim halde, 3 kayıt listeleniyor. Olayın sebebini çözdüm; Aynı ürün no Tablo2'de 2 hareket ve Tablo3'de 3 hareket gördüğünden 3 kayıt listeleniyor. Ancak benim istediğim çözüm: Kayıtların Tablo1'e göre listlenmesi, yani sadece bir kayıt ve tablo1'e görüntülenmeli.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;
Kusura bakmayın ama ben anlayamadım sizden ollmasını istediğiniz sonuçları Excel belgesi olarak göndermenizi rica etsem? Tabii örneğinizdeki alan ve verilerle birebir örtüşerek..
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;
Kontrol eder misiniz?

SELECT Tablo1.[Mamül Kodu], Tablo1.[Sipariş Adet], First(Tablo2.[Stok Adı]) AS [İlkStok Adı], First(Tablo2.[Stok Adet]) AS [İlkStok Adet], First(Tablo3.[Red Sebep]) AS [İlkRed Sebep], First(Tablo3.[Red Adet]) AS [İlkRed Adet]
FROM Tablo3 RIGHT JOIN (Tablo1 LEFT JOIN Tablo2 ON Tablo1.[Ürün No] = Tablo2.[Ürün No]) ON Tablo3.[Ürün No] = Tablo1.[Ürün No]
GROUP BY Tablo1.[Mamül Kodu], Tablo1.[Sipariş Adet];
 
Üst