查看: 1742|回复: 6
|
2个Sum function在不同的table
[复制链接]
|
|
select sum(sales.Amount) as Samt, Sum(Expenses.Amount) as Eamt From Sales,Expenses Where Sales.Date= Expenses.Date;
Samt的答案是对, Eamt的答案却是Samt的双倍。。。
如果加了Distinct 进去的答案也是一样。。。。。
请问各位有谁知到什么错? |
|
|
|
|
|
|
|
发表于 26-4-2010 10:47 AM
|
显示全部楼层
当你 用 EQUALS JOIN 的时候 , Expenses.Amount 是不是 重复了 ?
P.S , 不要 SUM 先 , 看看 清楚 里面的 RECORD 时候 , 才 SUM 。 如果 重复了 , 你就要 SUB 出来了 。 |
|
|
|
|
|
|
|
楼主 |
发表于 26-4-2010 01:34 PM
|
显示全部楼层
sub的意思是不是好像
Select * From Table where field=(Select * From table Where field = ''); |
|
|
|
|
|
|
|
发表于 26-4-2010 05:07 PM
|
显示全部楼层
select sum(sales.Amount) as Samt,
(Select Sum(Expenses.Amount) from Expenses where Expenses.Date
= S.Date) as Eamt <---- SUBQUERY
From Sales s |
|
|
|
|
|
|
|
楼主 |
发表于 27-4-2010 04:24 PM
|
显示全部楼层
楼上的谢谢,
如果我要把两个不同的table里面的field list 出来
好像Sales Table里面有200个Record
Expenses没有200个Record
Expenses Table 就会repeat同样的record直到200个record
sql =Select s.*,e.* From Sales s,Expenses e Where s.date=e.date
请问知道什么问题吗? |
|
|
|
|
|
|
|
发表于 27-4-2010 07:38 PM
|
显示全部楼层
本帖最后由 兔仙人 于 27-4-2010 07:40 PM 编辑
用 SALES 的 TABLE
LEFT OUTER JOIN EXPANSE TABLE 。
这样 就能 确定 有 200 个 RECORD 了 |
|
|
|
|
|
|
|
发表于 7-5-2010 08:43 PM
|
显示全部楼层
因为 Expenses table 里面有2个 date 是和Sale table 里面的1个 date 相同 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|