Fatklı tablolardaki verileri aynı satırda gösterme

Delphi .net ve .net ile ilgili konuları buraya yazabilirsiniz.
Cevapla
AliRiza
Üye
Mesajlar: 172
Kayıt: 24 Kas 2004 10:57
Konum: İstanbul/Avcılar
İletişim:

Fatklı tablolardaki verileri aynı satırda gösterme

Mesaj gönderen AliRiza »

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...
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

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....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
UNION a baktınızmı.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
AliRiza
Üye
Mesajlar: 172
Kayıt: 24 Kas 2004 10:57
Konum: İstanbul/Avcılar
İletişim:

Farklı tablolarla ilgili tablo yapısı

Mesaj gönderen AliRiza »

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..
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

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.

Kod: Tümünü seç

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 :ara join
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

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....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
AliRiza
Üye
Mesajlar: 172
Kayıt: 24 Kas 2004 10:57
Konum: İstanbul/Avcılar
İletişim:

Tablolar ve yapısı

Mesaj gönderen AliRiza »

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
Üye
Mesajlar: 172
Kayıt: 24 Kas 2004 10:57
Konum: İstanbul/Avcılar
İletişim:

Union ifadesinin kullanımı

Mesaj gönderen AliRiza »

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.
Misafir

Mesaj gönderen Misafir »

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
Üye
Mesajlar: 172
Kayıt: 24 Kas 2004 10:57
Konum: İstanbul/Avcılar
İletişim:

Mesaj gönderen AliRiza »

Hocam özür dilerim.Aynı sütun demek istemiştim.Siz haklısınız..
Bilginin efendisi olmak için çalışmanın uşağı olmak şarttır...
BALZAC
Bana bir harf öğretenin kulu kölesi olurum..
HZ.ALİ
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Kod: Tümünü seç

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...
viewtopic.php?t=3025
hem de Cd olarak talep edebilirsiniz...
viewtopic.php?t=2603

iyi calismalar dilerim....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Cevapla