| pro_imaj | 01.07.2005 - 09:39:07 |
| Merhaba,
SELECT DISTINCT STI.Tarih, STI.MalKodu, STK.MalAdi, CHK.Unvan1, STI.Miktar FROM SOLAR4.FINSAT460.CHK CHK, SOLAR4.FINSAT460.STI STI, SOLAR4.FINSAT460.STK STK WHERE STK.MalKodu = STI.MalKodu AND STI.Chk = CHK.HesapKodu AND ((STI.IslemTur=1)) GROUP BY STI.Tarih, STI.MalKodu, STK.MalAdi, CHK.Unvan1, STI.Miktar Yukarıdaki kod ile aşağıdaki sonuca ulaşıyorum. Tarih MalKodu MalAdi Unvan1 Miktar 26.05.2005 ML500 Filitre BMV 120 26.05.2005 ML500 Filitre RENOULT 100 Yapmak İstediğim Tarih 26.05.2005 MalKodu BMV RENOULT ML500 120 100 Yukarıdaki değerler sabit diil yani yukarıda BMV ve RENOULT var ama bu onlarca olabiliyor. Veri tabanında yüzlerce girilebiliyor. Benim bunu SQL ile yapmam mümkünmü acaba. Saygılarımla. | |
| Hakan Can | 01.07.2005 - 10:20:31 |
| Satırları belirsiz sayıda sütün olarak direk SQL komutu ile döndüremezsiniz.
Bu problemi ancak kod yazarak çözebilirsiniz. İyi çalışmalar. | |
| naile | 01.07.2005 - 10:23:13 |
| Sabit olmadığı için ancak bir döngü ile sql oluşturarak yapabilirisn. Yani mesela yukardaki bmw, reno v.b. bilgilerinin tutulduğu tablo olsun Unvan diye. Önce burdan bir sorgu çalıştır:
var
SQLText: string; begin Query1.Close; Query1.SQL.Text := 'SELECT UnvanKodu FROM Unvan'; Query1.Close; while not(Query1.Eof) begin SQLText := SQLText + ',' +'(Select Miktar FROM Tablom WHere Unvan='+Query1.Fields[0].AsString+')'; Query1.Next; end; // sonra bu sqltext senin sqline ekleyeceksin end; Tam bu şekil çalışmaz biraz değişiklik yapman gerekebilir ama mantığı anlamışsındır umarım. Yani, iç select kullanacaksın ama bunu döngü ile oluşturup sqline ekleyeceksin. | |