MySQL Gruplama UNION Sıralama Sorunu

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

MySQL Gruplama UNION Sıralama Sorunu

Mesaj gönderen vkamadan »

Merhaba ,
aşağıdaki gibi kurduğum SQL cümlesinde,

Kod: Tümünü seç

select h.heskod,h.hesad,h.hestip,sum(IF(f.ba="B",f.tutar,0)) as borc , sum(IF(f.ba="A",f.tutar,0)) as alacak,'-----------------------------------------------' as aciklama  from mhsfisi f , hesplan h where f.fistar='2006-01-02' and LEFT(f.heskod,LENGTH(h.heskod))=h.heskod and h.hestip=0 and LENGTH(h.heskod)>=3 group by h.heskod,f.fistar,f.maddeno,f.fisno,f.fistip UNION
select h.heskod,h.hesad,h.hestip,IF(f.ba="B",f.tutar,0) as borc , IF(f.ba="A",f.tutar,0) as alacak,f.aciklama as aciklama  from mhsfisi f , hesplan h where f.fistar='2006-01-02' and h.hestip=2 and h.heskod=f.heskod order by h.heskod;
Cümlenini en sonunda order by h.heskod,f.fistar,f.maddeno,f.fisno,f.fistip eklediğimde yani UNION dan önceki gruplanan alanlara göre sıralama, f tablosu yok hatası alıyorum tamam dedim alias kulanmayayaım direk tablo adını yani mhsfisi dedim yine ilgili tablo yok mesajı veriyor hata nerede olabilir? Teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

tabloların create sql'ini gönderebilirsen denemek isterim. inceleyebildiğim kadarıyla hata yok gibi ama ...
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Tabi ,

Kod: Tümünü seç

#
# Table structure for table 'hesplan'
#

CREATE TABLE hesplan (
  id double NOT NULL auto_increment,
  hestip tinyint(1) unsigned default '0',
  heskod varchar(20) default NULL,
  hesad varchar(40) default NULL,
  pb varchar(5) default NULL,
  anaheskod varchar(20) default NULL,
  araheskod varchar(20) default NULL,
  vade varchar(7) default NULL,
  btip tinyint(1) unsigned default '0',
  giris tinyint(1) unsigned default '0',
  PRIMARY KEY  (id),
  UNIQUE KEY XKod (heskod)
) TYPE=InnoDB;



#
# Table structure for table 'mhsfisi'
#

CREATE TABLE mhsfisi (
  id double NOT NULL auto_increment,
  fistar date default NULL,
  fistip tinyint(1) unsigned default NULL,
  fiskod tinyint(2) unsigned default NULL,
  maddeno double default '0',
  fisno double default '0',
  heskod varchar(20) default NULL,
  aciklama varchar(50) default NULL,
  ba char(1) default NULL,
  tutar double(13,2) default NULL,
  pb varchar(5) default NULL,
  kur double(13,5) default NULL,
  dvztutar double(13,2) default NULL,
  yer tinyint(2) default NULL,
  yerid double default NULL,
  kayit tinyint(1) default '0',
  bos1 varchar(10) default NULL,
  bos2 varchar(10) default NULL,
  bos3 varchar(10) default NULL,
  bos4 varchar(10) default NULL,
  bos5 varchar(10) default NULL,
  pozisyon_id double default NULL,
  PRIMARY KEY  (id),
  UNIQUE KEY id (id),
  KEY id_2 (id)
) TYPE=InnoDB;
Yukarıdaki kod çalışıyor ama "order by" a mhsfisi tablosundaki gruplama yaptığım alanları dahil ettiğimde sorun çıkıypor yani cümle çalışmıyor.
ilginiz için teşekkür ederim.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba ,
Sıralatmak istediğim alanlarıda select e dahil edince istediğimi sonuca ulaştım teşkkür ederim.Ama bu bir sorun bence yani sıralatmak istediğim alanları neden seçmleiyimki :roll:

Kod: Tümünü seç

select h.heskod,h.hesad,h.hestip,sum(IF(f.ba="B",f.tutar,0)) as borc , sum(IF(f.ba="A",f.tutar,0)) as alacak,'-----------------------------------------------' as aciklama,f.fistar,f.maddeno,f.fisno,f.fistip  from mhsfisi f , hesplan h where f.fistar='2006-01-02' and LEFT(f.heskod,LENGTH(h.heskod))=h.heskod and h.hestip=0 and LENGTH(h.heskod)>=3 group by f.fistar,f.maddeno,f.fisno,f.fistip,h.heskod UNION select h.heskod,h.hesad,h.hestip,IF(f.ba="B",f.tutar,0) as borc , IF(f.ba="A",f.tutar,0) as alacak,f.aciklama,f.fistar,f.maddeno,f.fisno,f.fistip from hesplan h,mhsfisi f where f.fistar='2006-01-02' and h.hestip=2 and f.heskod=h.heskod order by f.fistar,f.maddeno,f.fisno,f.fistip,h.heskod
Volkan KAMADAN
www.polisoft.com.tr
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

normalde yazmaya gerek olmaması gerekeri. union ile alakalı olabilir belki olay.
Cevapla