subquery

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Vital
Üye
Mesajlar: 280
Kayıt: 01 Oca 2008 08:50

subquery

Mesaj gönderen Vital »

merhaba

arkadaslar soyle bir sorunum var

iki tane tablomvar dokum1 ve dokumdetail1 adında

ben dokumdetail1 deki gelenadeti toplatarak dokum1 deki mussipadeti nden cıkarmak istiyorum

bu sekilde dokumdetail1 den gelenadet lerin toplamını buluyorum

select (sum(dokumdetail1.GELENADET)as kalan_kalan from dokumdetail1,dokum1 where dokumdetail1.dokumid='''+EDIT3.text+''' );

dokum1 deki alandan cıkarmak ıcın de su kodu kullanıyorum ama group by hatası veriyor

select (dokum1.MUSSIPADETI)-sum(dokumdetail1.GELENADET)as kalan_kalan from dokumdetail1,dokum1 where dokumdetail1.dokumid='''+EDIT3.text+''' and dokum1.dokumid=dokumdetail1.dokumid');

nere de yanlıslık yapıyorum veya dogru kod nasıl olmalı.subquery olusturmaya calistim cesitli hatalar aldım

tskler
Garibanus
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: subquery

Mesaj gönderen sabanakman »

Yerinde olsam

Kod: Tümünü seç

select isNull(dokum1.MUSSIPADETI,0)-isNull((select sum(dokumdetail1.MUSSIPADETI) from dokumdetail1.ID=dokum1.ID),0) as FARK, * from dokum1 where dokum1.ID=???
gibi bir kodla bu farkı alırdım fakat hangi veritabanını kullandığınızı belirtmemişsiniz.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Vital
Üye
Mesajlar: 280
Kayıt: 01 Oca 2008 08:50

Re: subquery

Mesaj gönderen Vital »

tskler arkadaslar

d7 fb kullanıyorum
sorunu su sekilde cozdum

select dokum1.mussipadeti,dokum1.mussipadeti-sum(dokumdetail1.gelenadet) as Toplam_kalan from dokum1,DOKUMDETAIL1 where dokum1.DOKUMID='''+EDIT3.text+''' and DOKUMDETAIL1.DOKUMID='''+EDIT3.text+''' group by dokum1.mussipadeti') ;
ve fb de isnull da hata veriyor sanırım veya benim kodda hata vardi ben coalepce kullanıyorum bir sakıncası olurmu acaba
sabanakman evet senin verdigin kodda ayni isi gorur galiba deneyecegim saqol

ve diger bir sorun olarak formun acılısında query ile pass tablosunu sorgulatıyorum ama sadece ilk kaydı tarıyor diger kayıtları sorgulamıyor


form1.ibquery1.Close;
form1.ibquery1.SQL.Clear;
form1.ibquery1.SQL.Add('select * from pass');
form1.ibquery1.Open;
form1.ibquery1 .First;
a:=inputbox('xxx','Programa Girmek İçin Kullanıcı Adını Giriniz:','');
b:=inputbox('xxxx','Programa Girmek İçin Şifreyi Giriniz:','');
for i:=0 to form1.ibquery1.RecordCount-1 do

begin
if (form1.ibquery1.fieldbyname('KULLANICIID').value=(a)) and (form1.ibquery1.fieldbyname('KULLANICISIFRE').value=(b)) then
begin
form1.show;
break ;
end;

tskler
Garibanus
Cevapla