View Full Version : محاسبه اشتباه در view
mehr_83
جمعه 27 فروردین 1395, 12:45 عصر
با سلام
من دو تا ویو دارم به شکل زیر که به تنهایی محاسباتشان درست است»
140024
140025
وقتی این ها را جوین می کنم همانند شکل زیر:
140026
محاسبات اشتباه می شود.
چه کاری باید انجام دهم؟
Mahmoud.Afrad
جمعه 27 فروردین 1395, 13:55 عصر
خب اول باید گروهبندی و بعد جوین کنید در صورتی که در کوئری که نوشتید اول جوین میکنه
به این صورت انجام بدید
; with cte
as
(select tbl1.id,
SUM(tbl1.outPrice) as S1
from tbl1
group by tbl1.id
)
, cte2
as
(
select tbl2.id,
SUM(tbl2.outPrice) as S2
from tbl2
group by tbl2.id
)
select cte.id,
cte.S1,
cte2.S2
from cte
join cte2 on cte.id = cte2.id
یا
select t1.id,S1,S2
from
(select tbl1.id,
SUM(tbl1.outPrice) as S1
from tbl1
group by tbl1.id) t1
join
(select tbl2.id,
SUM(tbl2.outPrice) as S2
from tbl2
group by tbl2.id) t2
on t1.id = t2.id
mehr_83
جمعه 27 فروردین 1395, 16:01 عصر
در دو تا ویو یک فیل بنام datefa1 هم دارم. چگونه از where استفاده کنم در این کدها؟
where datefa1>13950101
mehr_83
جمعه 27 فروردین 1395, 16:19 عصر
وقتی از این کد استفاده می کنم نتیجه درست میده. آیا درسته که از این کد استفاده کنم؟
SELECT dbo.an1.id_card, dbo.an1.name_card, SUM(DISTINCT dbo.an1.in1) AS in1, SUM(DISTINCT dbo.an2.out1) AS out1, SUM(dbo.an1.in1 - dbo.an2.out1) AS bagFROM dbo.an1 INNER JOIN
dbo.an2 ON dbo.an1.id_card = dbo.an2.id_card
WHERE (dbo.an1.datefa1 >= @d1) and dbo.an1.id_card =@card
GROUP BY dbo.an1.id_card, dbo.an1.name_card
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.