佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1742|回复: 6

2个Sum function在不同的table

[复制链接]
发表于 26-4-2010 08:05 AM | 显示全部楼层 |阅读模式
select sum(sales.Amount) as Samt, Sum(Expenses.Amount) as Eamt From Sales,Expenses Where Sales.Date= Expenses.Date;

Samt的答案是对, Eamt的答案却是Samt的双倍。。。

如果加了Distinct 进去的答案也是一样。。。。。
请问各位有谁知到什么错?
回复

使用道具 举报


ADVERTISEMENT

发表于 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 了
回复

使用道具 举报

Follow Us
发表于 7-5-2010 08:43 PM | 显示全部楼层

因为 Expenses table 里面有2个 date 是和Sale table 里面的1个 date 相同
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 18-4-2024 04:20 PM , Processed in 0.057207 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表