Mssql Sum Kullanımı Hakkında
-
Merhaba arkadaşlar sorunum şu 3 tane tablom var bu tablolar şöyle
1- Firmalar
2- Alan1
3- Alan2
Yapmak istediğim şu Firmalar tablosunda ki firmaları listeletip alan1 ve alan2 de ücretlerin bulunduğu kolonun satırlarını toplatıp fırmanın yanına yazdırmak. Dünden bu yana üzerinde uğraşıyorum Firmalar ve diğer 2 tablodan sadece 1 tanesini alınca sorun yok gayet güzel toplayp firmanın yanında toplamı gösteriyor ancak nezaman 3.tabloyu sorguya ekliyorum herhangi bir alanını seçmesem bile çalıştırdığımda hesaplar saçmalıyor nedenini bir türlü çözmedim yardımlarınızı bekliyorum...
-
örnek çalışmanı koy çözelim hocam ;) sorun olmaz alması lazım
-
http://www.dosya.tc/server21/JJahNp/db.rar.html
rarladım backup ı umarım dogru yapmsmdr mssql e yenı basladım da :)
-
select firmaadi, (alan1 + alan2) as Toplam from firma
gibi;?
SharpShooter tarafından 07/Eyl/12 13:05 tarihinde düzenlenmiştir -
Teşekkürler ama olmadı hocam :(
-
FİRMA ADI ALAN 1 KAZANCI ALAN 2 KAZANCI FİRMA 1 25 TL 15 TL FİRMA 2 0 TL 40 TL Yapmak istediğim tam anlamıyla yukarıda ki gibi bir tablo
Db de ki tablolar ve alanları
Firmalar tablosu
firma_id : int
firma_adi : nvarchar
---
Alan1 tablosu
f_id : int
tutar : money
----
Alan2 tablosu
firm_id : int
ucret : money
-
select firma_adi, (sum(tutar)+sum(money)) from firmalar,alan1,alan2 where firma_id = f_id and firma_id = firm_id
not : db ye bakamadım sql server kurdurma bana hocam :D bu kodun olması lazım :D
mYMusti tarafından 07/Eyl/12 14:11 tarihinde düzenlenmiştir -
" is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. "
şeklinde bir uyarı veriyor musti kardeş:)
-
SELECT firma_adi AS [FİRMA ADI], alan1tutar AS [ALAN 1 KAZANCI], ISNULL(SUM(B.ucret), 0) AS [ALAN 2 KAZANCI] FROM (SELECT F.firma_adi, F.firma_id, ISNULL(SUM(A.tutar), 0) AS alan1tutar FROM firmalar F LEFT OUTER JOIN alan1 A ON A.fi_id = F.firma_id GROUP BY F.firma_adi, F.firma_id) tmp LEFT OUTER JOIN alan2 B ON tmp.firma_id = B.firm_id GROUP BY tmp.firma_adi, tmp.firma_id, alan1tutar
KodlayanAdam tarafından 07/Eyl/12 16:07 tarihinde düzenlenmiştir -
select firma_adi, (sum(tutar)+sum(money)) from firmalar,alan1,alan2 where firma_id = f_id and firma_id = firm_id
group by firma_adi, (sum(tutar)+sum(money))
veya
select firma_adi, (sum(tutar)+sum(money)) from firmalar,alan1,alan2 where firma_id = f_id and firma_id = firm_id
group by firma_adi
şimdi dene hocam firma adi ve tutara göre gruplaması lazım olmaz sa eger pm attım :)
mYMusti tarafından 07/Eyl/12 16:22 tarihinde düzenlenmiştir -
İlgilenen arkadaşlara tek tek teşekkür ederim KodlayanAdam'ın yazdığı şekilde sorunsuz çalıştı sorgu. Bir de bu sorguyu nasıl yaptın abi ya view dan mı yaptın ben çözümleyene kadar öldüm özllikle alan1tutar yerlerinde onları as gibi tanımlama sandım başta:)
