master detail de sorun

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
PcText
Üye
Mesajlar: 36
Kayıt: 19 Ağu 2004 04:04
Konum: İstanbul / Alibeyköy
İletişim:

master detail de sorun

Mesaj gönderen PcText »

kolay gelsin arkadaşlar...

üzerinde çalıştığım programda birbirine master detail olarak bağlı 3 tablo var. master tabloma bağlı bir detail tablo ve bu detail tabloya bağlı başka bir detail tablo daha,
master tabloma bağlı detail tablodaki alanlar üzerinde sorgulama yaptığımda sorgulama sonucunda master alana bağlı olan detail alanları listelediğimde master alanı 2 kere listeliyo burdaki sorun ne olabilir sizce
bir kaç gündür uğraşmama rağmen bir türlü çözemedim bu sorunu lütfen yardım edin... :cry:
@mrmarman yazdı:TAŞIMA BİLGİSİ : Programlama formundan DİĞER VERİTABANLARI formuna taşınmıştır
Dört bir yan kararınca sana yöneldik.Ey ışıklar kaynağı aç kapını biz geldik.
Kullanıcı avatarı
sTb
Üye
Mesajlar: 59
Kayıt: 06 Nis 2005 11:13
Konum: Eskişehir

Mesaj gönderen sTb »

s.a.

Tablo ve alanlarınızı,
sorgunuzu,
sorgunun döndüreceği bilgiyi yazarsanız cevap verebilecek birileri muhakkak olacaktır.

Ayrıca;
viewtopic.php?t=18499
" Her bildiğin doğru olsun. Ama her doğruyu her yerde söylemek doğru değildir. "
Kullanıcı avatarı
PcText
Üye
Mesajlar: 36
Kayıt: 19 Ağu 2004 04:04
Konum: İstanbul / Alibeyköy
İletişim:

Mesaj gönderen PcText »

sTb yazdı:s.a.

Tablo ve alanlarınızı,
sorgunuzu,
sorgunun döndüreceği bilgiyi yazarsanız cevap verebilecek birileri muhakkak olacaktır.

Ayrıca;
viewtopic.php?t=18499
odabilgileri,musteribilgileri,ve konaklama bilgileri diye üç ayrı tablom var
oda bilgileri master tablom,musteribilgileri detail tablom,konaklamabilgileri musteribilgilerine baglı detail tablom.

odabilgileri tablosundaki alanlar odaid(primeriy key),odano ,odadurumu,temilikdurumu
musteriilgileri tablosundaki alanlar musid(primery key),indoda(foreing key)adsoyad,tel, vs.

konaklamabilgileri tablosundaki alanlar indkon(foreingkey),giritarihi,cıkıstarihi,kisisayısı
sorgumun döndürmei gereken bilgi kullanıcının istediği tarihteki dolu odaları listeleme ...ve listelenen alanları taratarak dolu odalar hangileri ise oda numaralarına karşılık gelen butonları kırmızıya boyamak
ben bunu sorgulamadan aldığım sonuca göre butonlara yansıtmak
Dört bir yan kararınca sana yöneldik.Ey ışıklar kaynağı aç kapını biz geldik.
Kullanıcı avatarı
sTb
Üye
Mesajlar: 59
Kayıt: 06 Nis 2005 11:13
Konum: Eskişehir

Mesaj gönderen sTb »

s.p olarak yaptım

Kod: Tümünü seç

 for
  select  odabilgileri.odano
  from    odabilgileri,musteribilgileri,konaklamabilgileri
  where odabilgileri.odadurumu=:odadr and
            konaklamabilgileri.giristarihi>=:giris and  
            konaklamabilgileri.cikistarihi<=:cikis
            and odabilgileri.odaid=musteribilgileri.indoda
           and musteribilgileri.musteriid=konaklamabilgileri.indkon
  group by odabilgileri.odano
  into :odanosu
 do
bi denerseniz.
" Her bildiğin doğru olsun. Ama her doğruyu her yerde söylemek doğru değildir. "
Kullanıcı avatarı
PcText
Üye
Mesajlar: 36
Kayıt: 19 Ağu 2004 04:04
Konum: İstanbul / Alibeyköy
İletişim:

Mesaj gönderen PcText »

sTb yazdı:s.p olarak yaptım

Kod: Tümünü seç

 for
  select  odabilgileri.odano
  from    odabilgileri,musteribilgileri,konaklamabilgileri
  where odabilgileri.odadurumu=:odadr and
            konaklamabilgileri.giristarihi>=:giris and  
            konaklamabilgileri.cikistarihi<=:cikis
            and odabilgileri.odaid=musteribilgileri.indoda
           and musteribilgileri.musteriid=konaklamabilgileri.indkon
  group by odabilgileri.odano
  into :odanosu
 do
bi denerseniz.

yalnız ben sp kullanmasını bilmiyorum query le yapabilirmiyim bunu
Dört bir yan kararınca sana yöneldik.Ey ışıklar kaynağı aç kapını biz geldik.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

Aracı Tool yardımıya Databasenizi açın ve New Procedure den yeni bir Procedure belirleyin sp nize bir isim belirleyin. odanosu alanını Output tanımlayın. arkadaşın yazdığı tex i copy-paste yapın.

daha sonra Delphi tarafında bir query ekleyin..

select * from SP ismi şeklinde bir ifadeyle sorgunuzun sonucunu görün.
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
PcText
Üye
Mesajlar: 36
Kayıt: 19 Ağu 2004 04:04
Konum: İstanbul / Alibeyköy
İletişim:

Mesaj gönderen PcText »

sağolun arkadaşlar deniycem hemen
Dört bir yan kararınca sana yöneldik.Ey ışıklar kaynağı aç kapını biz geldik.
Kullanıcı avatarı
PcText
Üye
Mesajlar: 36
Kayıt: 19 Ağu 2004 04:04
Konum: İstanbul / Alibeyköy
İletişim:

Mesaj gönderen PcText »

yaa arkadaşlar sp olayı şu ana kadar yaptığım işleri tamamiyle değiştiriyo
o yüzden sp kullanmadan yapmam lazım,sadece bu tekrarlı kayıtları neden veriyo onu bulup düzeltmem yeter.
master tablosundaki 101 nolu odaya detail tablodan 2 ayrı müşteri girişi yapıp girilen kayıtları gridlerde gördüğümde master tablomun bağlı olduğu gridde 2 kere aynı primery keyli alan listeleniyo bu sorunu aştığımda büyük bi sorundan kurtulmuş olcam lütfen yardım edin
Dört bir yan kararınca sana yöneldik.Ey ışıklar kaynağı aç kapını biz geldik.
Kullanıcı avatarı
PcText
Üye
Mesajlar: 36
Kayıt: 19 Ağu 2004 04:04
Konum: İstanbul / Alibeyköy
İletişim:

Mesaj gönderen PcText »

arkadaşlar sorummu anlaşılmadı yoksa çözümü gerçekten zor olan bi sorunmu, ilk defa foruma sorduğum sorun çözüme kavuşmadı lütfen yardım edin... :(
Dört bir yan kararınca sana yöneldik.Ey ışıklar kaynağı aç kapını biz geldik.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@PcText yazdı:arkadaşlar sorummu anlaşılmadı yoksa çözümü gerçekten zor olan bi sorunmu, ilk defa foruma sorduğum sorun çözüme kavuşmadı lütfen yardım edin...
- Daha önce açtığın başlıktan neden devam etmiyorsun peki ? Kurallara aykırı hareket etmeyelim. Bir daha olmasın lütfen.. :oops:

- GROUP BY ile sorgunu ODANO'ya göre gruplayacaksın. Sorunun cevabını @stb vermiş, verdiği kodu Query için SQL TEXT olarak vereceksin.

Kod: Tümünü seç

  SQL.Add('select  odabilgileri.odano');
  SQL.Add('from    odabilgileri,musteribilgileri,konaklamabilgileri');
  SQL.Add('where odabilgileri.odadurumu=:odadr and');
  SQL.Add('      konaklamabilgileri.giristarihi>=:giris and');
  SQL.Add('      konaklamabilgileri.cikistarihi<=:cikis');
  SQL.Add('      and odabilgileri.odaid=musteribilgileri.indoda');
  SQL.Add('      and musteribilgileri.musteriid=konaklamabilgileri.indkon');
  SQL.Add('group by odabilgileri.odano');
Resim
Resim ....Resim
Kullanıcı avatarı
PcText
Üye
Mesajlar: 36
Kayıt: 19 Ağu 2004 04:04
Konum: İstanbul / Alibeyköy
İletişim:

Mesaj gönderen PcText »

mrmarman yazdı:
@PcText yazdı:arkadaşlar sorummu anlaşılmadı yoksa çözümü gerçekten zor olan bi sorunmu, ilk defa foruma sorduğum sorun çözüme kavuşmadı lütfen yardım edin...
- Daha önce açtığın başlıktan neden devam etmiyorsun peki ? Kurallara aykırı hareket etmeyelim. Bir daha olmasın lütfen.. :oops:

- GROUP BY ile sorgunu ODANO'ya göre gruplayacaksın. Sorunun cevabını @stb vermiş, verdiği kodu Query için SQL TEXT olarak vereceksin.

Kod: Tümünü seç

  SQL.Add('select  odabilgileri.odano');
  SQL.Add('from    odabilgileri,musteribilgileri,konaklamabilgileri');
  SQL.Add('where odabilgileri.odadurumu=:odadr and');
  SQL.Add('      konaklamabilgileri.giristarihi>=:giris and');
  SQL.Add('      konaklamabilgileri.cikistarihi<=:cikis');
  SQL.Add('      and odabilgileri.odaid=musteribilgileri.indoda');
  SQL.Add('      and musteribilgileri.musteriid=konaklamabilgileri.indkon');
  SQL.Add('group by odabilgileri.odano');
odaid not found hatası veriyo bunun sebebi ne olabilir acaba...

buarada kuralları çiğnediğim için özür... :oops:
Dört bir yan kararınca sana yöneldik.Ey ışıklar kaynağı aç kapını biz geldik.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Odabilgileri veritabanında OdaId diye bir alan yok sanırım ondandır...
Resim
Resim ....Resim
Kullanıcı avatarı
PcText
Üye
Mesajlar: 36
Kayıt: 19 Ağu 2004 04:04
Konum: İstanbul / Alibeyköy
İletişim:

Mesaj gönderen PcText »

söylediğiniz şekildede yaptım ama sonuç yine aynı yaa :? hala primerykeyli alanımı iki kere listeliyo yardım lütfennn
Dört bir yan kararınca sana yöneldik.Ey ışıklar kaynağı aç kapını biz geldik.
Kullanıcı avatarı
PcText
Üye
Mesajlar: 36
Kayıt: 19 Ağu 2004 04:04
Konum: İstanbul / Alibeyköy
İletişim:

Mesaj gönderen PcText »

group by fonksiyonu için invalid expression in the select list(not contained in either an aggregatefunction on the groupby clause) diye bir hata veriyor

yerine order by fonksiyonunu kullandım ama bu sefer de listeleme sorunum devam ediyor

lütfen şu sorunuma bir yardım
Dört bir yan kararınca sana yöneldik.Ey ışıklar kaynağı aç kapını biz geldik.
Kullanıcı avatarı
sTb
Üye
Mesajlar: 59
Kayıt: 06 Nis 2005 11:13
Konum: Eskişehir

Mesaj gönderen sTb »

sizin kullandığınız sql i yazar mısınız
" Her bildiğin doğru olsun. Ama her doğruyu her yerde söylemek doğru değildir. "
Cevapla