• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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:
Bu konuya cevap verebilecek arkadaşlarımın gözünden kaçmış oşmalı. İlgilenirlerse sevinirim.
 
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
 
Ö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.
 
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..
 
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];
 
Geri
Üst