Fatklı tablolardaki verileri aynı satırda gösterme
AliRiza26.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...
 
fahrettin26.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....
 
aslangeri26.11.2004 - 16:23:19
S.A.
UNION a baktınızmı.
Kolay gelsin.
 
AliRiza26.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..
 
aslangeri26.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 Arama join
Kolay gelsin.
 
fahrettin26.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....
 
AliRiza27.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
 
AliRiza27.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.
 
Anonymous27.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. ?
 
AliRiza27.11.2004 - 12:18:52
Hocam özür dilerim.Aynı sütun demek istemiştim.Siz haklısınız..
 
fahrettin27.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....
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com