| AliRiza | 26.11.2004 - 15:29:37 |
| ENGINE
Engine Housing Cylinder Block Parts ELECTRICAL SYSTEM Battery Box Lighting Arkadaşlar grup diye veritabanım var.grupta otomobil yedek parçaları motor,şasi,elektrik sistem gibi bilgiler tutuluyor.Bunun dışında birde alt grup var.bu gruptada Bu parçaların alt parçaları var.Mesala motor koruma gibi.O alt parçanınnda silindir blok parçaları var.Veritanından veriler anlattığım gibi farklı tablolarda tutuluyor.Benim istediğim forum açıldığında bunların yukarıda gösterdiğim gibi listbox veya dbgrid'de sıralı gelmesi. Yani engine,electrical group tablosunda engine housing,battery box alt grup tablosunda cylinder blok parts'da products tablosunda.. Tablolar arasında ilişki oluşturdum.Sizde biliyorsunuzki ilşkiye göre yaptıracağım sorgulama veriler aynı tablodan olacağı için farklı sütunlarda olacaktır. bunu nasıl yapabilirim... | |
| fahrettin | 26.11.2004 - 15:36:59 |
| Select cümlesi ile farklı tablolardaki degerleri cekersiniz.... Farkli selectleri union ile birleştirip uygun bir de order by verdiniz mi tamamdir....
ENGINE ve Engine Housing degerlerinin bulundukları tablo yapısını verirseniz daha net bir seyler soyleyenebilir.... | |
| aslangeri | 26.11.2004 - 16:23:19 |
| S.A.
UNION a baktınızmı. Kolay gelsin. | |
| AliRiza | 26.11.2004 - 16:49:03 |
| Tablo yapıları şu şekilde
group tablosu products bottomproduct id__________> groupid_______> productid groupname productid bottomid productname bottomname Arkadaşlar ilişlileri oluşturdum..Ama dediğim gibi select ile kullandığımızda ürünler farklı satırlarda listelenir.Ben aynı satırda listelenmesini istiyorum. 'select groupname,productname,bottomname from group.d=products.groupid and products.groupid=bottomproduct.productid' şeklinde sorgulama yapmsam groupname'leri bir sütuna,productnameleri bir sütuna,bottomnameleri bir sütuna atar.Ama ben bunlardan groupname'den bir veri alıp ona bağlı olan veriyi (products tablosundakileri) onun altında ,eğer products tablosuna bağlı alt ürün varsa (bottomproduct tablosundakiler) o alt ürünüde onun altında listelemek istiyorum... Nasıl yaparız.. | |
| aslangeri | 26.11.2004 - 16:56:58 |
| S.A.
şöyle bir şey mi arıyorsun örnekte iki tablo var imzalar ve unvanlar. imzalar tablosundan adı unvanID Ahmet 1 Mehmet 2 şeklinde unvanlar tablosunda ise ID UNVAN 1 müdür 2 şef şeklinde kayıtlar var. CREATE PROCEDURE IMZALISTESI RETURNS ( ID INTEGER, ADI VARCHAR(30), UNVANID INTEGER, UNVANADI VARCHAR(30)) AS begin FOR SELECT I.ID,I.ADI,I.unvanid, U.adi FROM IMZALAR I INNER join unvanlar U ON I.UNVANID=U.id WHERE (I.silindimi=0) ORDER BY I.adi INTO :ID, :ADI, :UNVANID, :UNVANADI DO BEGIN suspend; END end sonuç olarak dönen değer AHMET 1 Müdür Mehmet 2 Şef Oluyor. anahtar kelimemiz join
Kolay gelsin. | |
| fahrettin | 26.11.2004 - 21:38:03 |
| Hocam problemi anladigimi dusunuyorum.. UNION kullanarak bu is halledilebilir...
Gerekli cozumu sql cumlesi olarak yacicam ama verdiginiz tablo yapisindan hic bir sey anlamadim... galiba hiyerarsik olarak 3 seviyesi tutan 3 tane tablo var ama anladigim bu kadari tablo isimleri ve bunlardaki alanlar mechul.. Tablo yapinizi duzgun ve anlasilir olarak verebilirseniz insallah yardimci olmaya calisicam.... | |
| AliRiza | 27.11.2004 - 11:47:25 |
| Tablo isimleri şöyle
grup tablosu ve içerisinde grupid* grupismi urunturu tablosu ve içerisinde urunturugrupoid * urunturuid + urunturismi urunler tablosu ve içerisinde urunid + urunadı * ve + işareti ilişkileri göstermekte.Hocam buna göre hiyarerşik(ağaç yapısı şeklinde) yapıda verileri alt alta sql sorgusu ile listeleebiliriz. Örnek verecek olursam Grup tablosunda şöyle veriler var motor debriyaj viteskutusu karbiratör urunturu tablosunda Hava kompressörü motor contası debriyaj kutusu debriyaj contası urunler tablosundada mercedes kompressöru mercedes debriyaj kutusu Şimdi burda şöyle liste olacak. Motor Hava Kompressörü Mercedes kompressörü Motor Contası Debriyaj Debriyaj kutusu Mercedes debriyaj kutusu | |
| AliRiza | 27.11.2004 - 11:49:48 |
| Hocam union ifadesi ile farklı tablolar birleştirip aynı satırda veriler nasıl gösterilir.Yukarıda yazdığım cevaba göre bana sorguyu yazıp gönderirseniz çok memmun olurum. | |
| Anonymous | 27.11.2004 - 12:17:36 |
| sanırım çok belirgin bir hata var. aynı satırda değil aynı sütunda göstermek istiyorsunuz. doğru anlamışmıyım. ? | |
| AliRiza | 27.11.2004 - 12:18:52 |
| Hocam özür dilerim.Aynı sütun demek istemiştim.Siz haklısınız.. | |
| fahrettin | 27.11.2004 - 12:24:01 |
Select grupid, 0, grupismi
from grup UNION ALL Select urunturugrupoid, urunturuid ,urunturismi from urunturu order by 1,2 Urunler tablosunun ilişkisini tam anlayamadigim icin sadece ilk iki tablo icin ornek kodu yazdim.... UNION ile farklı select cumlelerinin sonuclarini aynı sayida ve aynı tip sırasında alana sahip olmalari sarti ile birleştirebilirsiniz.... Ve birleşik sonuca bir order b verirsiniz.... Alaninin sayisal oldugunu ve 1 den baslayan degerlere sahip oldugunu varsayiyorum.... Ayrica veritabanı tasarımı konusunda kendiniz geliştirmeniz gerektiğini düşünüyorum... Kullandiğiniz tablo ve alan isimlerine 2 ay sonra kendiniz de baksaniz anlamakta zorlanabilirsiniz... Bu anlamda geçen yıl düzenklediğimiz seminerleri mutlaka izlemelisiniz... Seminerleri hem internetten download edebilirsiniz... http://www.delphiturkiye.com/forum/viewtopic.php?t=3025 hem de Cd olarak talep edebilirsiniz... http://www.delphiturkiye.com/forum/viewtopic.php?t=2603 iyi calismalar dilerim.... | |