İki ayrı tablodaki borc sutunları tek sql kodu ile nasıl top
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
İki ayrı tablodaki borc sutunları tek sql kodu ile nasıl top
Merhaba arkadaşlar, değerli delphi türkiye üyelerine günaydınlar...
Benim bir sorunum var. Mesela alis ve satis tablom var bu iki tabloda da borc sütunu var. ben sql yardımıyla sum ile bu iki alanı toplatmak istiyorum.
Örneğin: SELECT SUM(BORC) FROM satis,alis diyorum eğer null alan yoksa yani satista borc toplamı diyelim 10,00 ytl iken alista borc alanında hiç kayıt yoksa dolayısı ile alis tablosunun borc alanı null değerde o zaman toplam çıkmıyor.
Bu konuda yardımcı olabilecek arkadaşlara duyurulur.
( Not: Bu soruyu sormadan önce delphi türkiye forumlarını kontrol ettim , arama yaptırdım, hatta bir günümü delphi türkiye offline v4 e ayırdım )
Benim bir sorunum var. Mesela alis ve satis tablom var bu iki tabloda da borc sütunu var. ben sql yardımıyla sum ile bu iki alanı toplatmak istiyorum.
Örneğin: SELECT SUM(BORC) FROM satis,alis diyorum eğer null alan yoksa yani satista borc toplamı diyelim 10,00 ytl iken alista borc alanında hiç kayıt yoksa dolayısı ile alis tablosunun borc alanı null değerde o zaman toplam çıkmıyor.
Bu konuda yardımcı olabilecek arkadaşlara duyurulur.
( Not: Bu soruyu sormadan önce delphi türkiye forumlarını kontrol ettim , arama yaptırdım, hatta bir günümü delphi türkiye offline v4 e ayırdım )
Kod: Tümünü seç
SELECT coalesce(sum(Borc), 0) FROM satis
Serkan'ın verdiği kodu şu şekide denedim
aldığım hata
Yardımlarınızı bekliyorum.
Kod: Tümünü seç
SELECT coalesce(sum(Borc), 0) FROM satis
aldığım hata
Kod: Tümünü seç
An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
COALESCE.
Kod: Tümünü seç
Function unknown.
COALESCE.
Isnull kullanmayı dene birde aynı şekilde.
Kod: Tümünü seç
SELECT ISNULL(sum(Borc), 0) FROM satis
Bir kelimenin anlamını öğretsen bile yeter..
sql dialecti ne seçili ? ondan olmasın. cidden coalesce standart bir fornksiyon sonuçta
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Arkadaşlar sql dialect 3 ayarlı fakat aklıma bişey takıldı bu client library gds32.dll seçili bu bildiğim kadarı ile interbase nin bir de firebirdin olacaktı o mu olması gerekir acaba sıkıntı burda olabilir mi ?
Denediğim kodlar ve hatalrı aşağıdaki gibidir.
Hata
Hata
Hata
Yardımlarınızı bekliyorum.
Denediğim kodlar ve hatalrı aşağıdaki gibidir.
Kod: Tümünü seç
SELECT ISNULL(sum(Borc), 0) FROM satis
Kod: Tümünü seç
An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
ISNULL.
Kod: Tümünü seç
SELECT IS NULL(sum(Borc), 0) FROM satis
Kod: Tümünü seç
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, char 7.
IS.
Kod: Tümünü seç
SELECT coalesce(sum(Borc), 0) FROM satis
Kod: Tümünü seç
An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
COALESCE.
gds interbase fb ise firebirdin bağlantı kütühanesi . ancak fb geriye dönük uyumluluk için gds32 olarakta çalışabilir.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Arkadaşlar merhaba sorunumu hallettim sorunum sanırım interbasenin gds32 i varmış ben firebirdin sanıyordum firebirdi tekrar kurdum olay çözüldü lakin asıl istediğim yani alis_detay ve satis tablolarındaki borc alanını toplatamadım şu şekilde alt alta geliyor
ama birtürlü toplatamadım. bu sorunu nasıl çözebilirim.
(Yardımlarından dolayı siz ve ayrıca sabanakman arkadaşıma tşk ediyorum.)
Kod: Tümünü seç
select coalesce(sum(borc),0) from satis
union
select coalesce(sum(borc),0) from ialis_iade
(Yardımlarından dolayı siz ve ayrıca sabanakman arkadaşıma tşk ediyorum.)
Firebird kullanıyorsanız kayıt yaoınca Null değerini 0 sıfır yapmak.
alıs veya satıs tabllosunda trigere aşağıdaki kod inşaalah cözer gibi geliyor.
AS
BEGIN
IF (NEW.KEY_ IS NULL) THEN
NEW.KEY_ = GEN_ID(DETAIL09_KEY__GEN, 1);
if (new.borc is null) then new.borc=0;
if (new.alacak is null) then new.alacak=0;
if (new.deger is null) then new.deger=0;
END
deger bos bir alan. borc alacak hangi tipte ise aynı tipte olacak
ayrıca sorgulamada ise
aynı satırsa musteri kodu borc ve alacak gözükür.
select musteriNo,borc, alacak from
(
select musteriNo,sum(borc) as borc, sum(deger) as alacak from alis
group by musterino
union
select musteriNo,sum(deger) as borc, sum(deger) as alacak from satis
group by musterino
)
group by musterino
alıs veya satıs tabllosunda trigere aşağıdaki kod inşaalah cözer gibi geliyor.
AS
BEGIN
IF (NEW.KEY_ IS NULL) THEN
NEW.KEY_ = GEN_ID(DETAIL09_KEY__GEN, 1);
if (new.borc is null) then new.borc=0;
if (new.alacak is null) then new.alacak=0;
if (new.deger is null) then new.deger=0;
END
deger bos bir alan. borc alacak hangi tipte ise aynı tipte olacak
ayrıca sorgulamada ise
aynı satırsa musteri kodu borc ve alacak gözükür.
select musteriNo,borc, alacak from
(
select musteriNo,sum(borc) as borc, sum(deger) as alacak from alis
group by musterino
union
select musteriNo,sum(deger) as borc, sum(deger) as alacak from satis
group by musterino
)
group by musterino