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.


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.
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
top 1 derseniz, 1 satırlık veri alabilirsiniz. recordset.movenext ile dönen verileri teker teker görebilirsiniz.
 
Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
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:
Katılım
17 Ocak 2008
Mesajlar
19
Excel Vers. ve Dili
2003
dostum anlamadım ödeme türünün ikisimi gelcek ?
 
Katılım
3 Mart 2008
Mesajlar
4
Excel Vers. ve Dili
v11 Türkçe
öö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.
 
Üst