• DİKKAT

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

SQL'de ikinci tablodan bilgi alma problemi.

Katılım
13 Ekim 2005
Mesajlar
16
Merhabalar,

SQL kodlarını yeni öğrenmeye başladım. Forumda baktım ama tam olarak anlayabileceğim bir cevap bulamadım. Kısaca sorunumu sizede anlatayım.

Aşağıda resimdeki gibi 2 tablom var.
my.php


ilk tablodaki siparişler tablosu. 2 nci tablo ise ödemelerin bulunduğu tablodur.

ilk 2 tablodada si_no bulunuyor. 2. tabloda başka herhangi bir anahtar v.s. yok.

Şimdi sorunum şu:
ödemelerle ilgili bilgiyi siparişlerinin yanına getirmeye çalışıyorum. Yapmak istediğim 1 sipariş numarasına bağlı olarak. O siparişin yanına ödeme tablosundaki ilk 2 satıdaki bilgiyi 2 ayrı sütuna getirmek.


Yani: 1 nolu sipariş için

Sip_No / Stok / Adet / Tutar / Ödeme 1 / Ödeme 2
1 a 1000 5000 Nakit Çek


Select Top(1) kullanarak ilk satırı getirebildim ama 2. satıra nasıl ulaşabilirim bir türlü bulamadım.

Yardımlarınız için şimdiden teşekkür ederim.
 
top 1 derseniz, 1 satırlık veri alabilirsiniz. recordset.movenext ile dönen verileri teker teker görebilirsiniz.
 
SELECT
Siparis.Sip_No AS Sip_No,
Siparis.Stok AS [Stok Adı],
Siparis.Adet AS Miktar,
Siparis.Tutar AS Tutar,
ODEME.OdemeTuru AS [Ödeme Türü]
FROM Siparis INNER JOIN
ODEME ON Siparis.Sip_No = ODEME.Sip_No

=======================================

1 A 1000 5000.0000 Nakit
1 A 1000 5000.0000 Çek
2 B 1250 7500.0000 Çek
2 B 1250 7500.0000 Nakit
3 C 1500 12000.0000 Senet
3 C 1500 12000.0000 Senet
3 C 1500 12000.0000 Senet
3 C 1500 12000.0000 Senet

Arkadaşım istediğin oldukça orjinal birşeymiş , yapmak istediğini bende yapamadım :(

Yeni bir Field Ekleyerek işin içinden bir nevze çıkmayı başarabildim...



SELECT DISTINCT Siparis.Sip_No AS Sip_No, Siparis.Stok AS [Stok Adı], Siparis.Adet AS Miktar, Siparis.Tutar AS Tutar,
(SELECT ODEME.OdemeTuru AS [Ödeme Türü1] FROM ODEME WHERE Siparis.Sip_No = ODEME.Sip_No AND ODEME.Odeme_SIRA=1) AS Ödeme1,
(SELECT ODEME.OdemeTuru AS [Ödeme Türü2] FROM ODEME WHERE Siparis.Sip_No = ODEME.Sip_No AND ODEME.Odeme_SIRA=2) AS Ödeme2,
(SELECT ODEME.OdemeTuru AS [Ödeme Türü3] FROM ODEME WHERE Siparis.Sip_No = ODEME.Sip_No AND ODEME.Odeme_SIRA=3) AS Ödeme3,
(SELECT ODEME.OdemeTuru AS [Ödeme Türü4] FROM ODEME WHERE Siparis.Sip_No = ODEME.Sip_No AND ODEME.Odeme_SIRA=4) AS Ödeme4,
(SELECT ODEME.OdemeTuru AS [Ödeme Türü5] FROM ODEME WHERE Siparis.Sip_No = ODEME.Sip_No AND ODEME.Odeme_SIRA=5) AS Ödeme5,
(SELECT ODEME.OdemeTuru AS [Ödeme Türü6] FROM ODEME WHERE Siparis.Sip_No = ODEME.Sip_No AND ODEME.Odeme_SIRA=6) AS Ödeme6,
(SELECT ODEME.OdemeTuru AS [Ödeme Türü7] FROM ODEME WHERE Siparis.Sip_No = ODEME.Sip_No AND ODEME.Odeme_SIRA=7) AS Ödeme7,
(SELECT ODEME.OdemeTuru AS [Ödeme Türü8] FROM ODEME WHERE Siparis.Sip_No = ODEME.Sip_No AND ODEME.Odeme_SIRA=8) AS Ödeme8,
(SELECT ODEME.OdemeTuru AS [Ödeme Türü9] FROM ODEME WHERE Siparis.Sip_No = ODEME.Sip_No AND ODEME.Odeme_SIRA=9) AS Ödeme9,
(SELECT ODEME.OdemeTuru AS [Ödeme Türü10] FROM ODEME WHERE Siparis.Sip_No = ODEME.Sip_No AND ODEME.Odeme_SIRA=10) AS Ödeme10
FROM Siparis

SONUÇ :
============================================================================================
Sip_No Stok_Adi Miktar Tutar Ödeme1 Ödeme2 Ödeme 3 .....
1 A 1000 5000.0000 Nakit Çek NULL NULL NULL NULL NULL NULL NULL NULL
2 B 1250 7500.0000 Çek Nakit NULL NULL NULL NULL NULL NULL NULL NULL
3 C 1500 12000.0000 Senet Senet Senet Senet NULL NULL NULL NULL NULL NULL
4 D 24500 171500.0000 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
5 E 3000 27000.0000 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
6 F 2000 200.0000 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL


 
Son düzenleme:
dostum anlamadım ödeme türünün ikisimi gelcek ?
 
ööf ööf.. trans sql veya t-sql size bir şey anımsatıyor mu? bunlar çocuk oyuncağı şeyler. sadece en alt derecenin bir üstüne çıkmak gerek.. t-sql komutlarını öğrenin bu problemlerinizi çözün.

bunun dışında gram yardım etmem. çünkü hiç ağaç görmemiş birine elmayı hatta elma ağacını tarif etmeye benzer.
 
Geri
Üst