标题:有关sql的问题!
取消只看楼主
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
结帖率:88.24%
 问题点数:0 回复次数:7 
有关sql的问题!
sql="select sum(jj) as jj,ph from aa group by ph"

以上这句sql已经可以把相同的ph(编号)的jj(金额)统计出来了,

可不可以改成:
把相同的ph(编号)的jj(金额)和sl(数量)统计以及把dj,mq直接读出出来呢?

会的请帮忙,谢谢!

可不可以用 in 或 union 呢?

[[italic] 本帖最后由 zhongx 于 2007-12-18 19:51 编辑 [/italic]]
搜索更多相关主题的帖子: sql 金额 sum union group 
2007-12-17 21:21
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
得分:0 
可不可以用 in 或 union 呢?

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-12-18 19:51
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
得分:0 
原帖由 [bold][underline]yms123[/underline][/bold] 于 2007-12-18 20:38 发表 [url=http://bbs.][/url]
select sum(jj) as jj,sum(sl) as sltotal,ph,dj,mp from aa group by ph
不知道sql能不能用两次聚合函数,楼主可以试试看。


执行后产生了以下的提示:

Microsoft JET Database Engine '80040e21'

试图执行的查询中不包含作为合计函数一部分的特定表达式 'dj' 。

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-12-19 22:05
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
得分:0 
原帖由 [bold][underline]madpbpl[/underline][/bold] 于 2007-12-18 23:15 发表 [url=http://bbs.][/url]
select sum(jj) as jjtotal,sum(sl) as sltotal,ph,min(dj),min(mp) from aa group by ph
or
select sum(jj) as jjtotal,sum(sl) as sltotal,ph,mxa(dj),max(mp) from aa group by ph


第一句运行后的提示:
Microsoft JET Database Engine '80040e10'

至少一个参数没有被指定值

第二句运行后的提示:

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-12-19 22:30
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
得分:0 
原帖由 [bold][underline]madpbpl[/underline][/bold] 于 2007-12-18 23:15 发表 [url=http://bbs.][/url]
select sum(jj) as jjtotal,sum(sl) as sltotal,ph,min(dj),min(mp) from aa group by ph
or
select sum(jj) as jjtotal,sum(sl) as sltotal,ph,mxa(dj),max(mp) from aa group by ph



madpbpl 考虑得非常周到, mq 取其  max 或 min , dj 取其 max 或 min ,因为 mq 或 dj 会有多条记录 又或者不相同的记录,
而取其一.
但运行时还是有问题, 我把其中的 total 去掉,统计就正确了,但不能获得 mq和dj的数据.
请教madpbpl怎么样才能获得 mq和dj的数据?谢谢!

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-12-19 23:08
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
得分:0 
原帖由 [bold][underline]madpbpl[/underline][/bold] 于 2007-12-20 16:26 发表 [url=http://bbs.][/url]
不看懂楼主的意思,我这是两条sql语句,不是一条,哪来的total?你所谓的mq在dj是最小还是最大,还是另有所指?


我是分开测试的,你第一条取最小的,第二条取最大的.
mq和dj我意思取ph相同的任何其中一条的都可以,因为当ph相同的时候它的mq和dj所记录的内基本是相同的.

select sum(jj) as jjtotal,sum(sl) as sltotal,ph,min(dj),min(mp) from aa group by ph
or
select sum(jj) as jjtotal,sum(sl) as sltotal,ph,mxa(dj),max(mp) from aa group by ph

哪来的total? 这个total是指上面红色的部分.

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-12-20 19:21
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
得分:0 
原帖由 [bold][underline]madpbpl[/underline][/bold] 于 2007-12-20 19:25 发表 [url=http://bbs.][/url]
我是用jjtotal表示jj的总和,用sltotal代表sl的总和,
第二句我有个语法错误,手误,不好意思,应该是
select sum(jj) as jjtotal,sum(sl) as sltotal,ph,max(dj),max(mp) from aa group by ph

max写成mxa了
这样运行 ...

=================================================
Microsoft JET Database Engine '80040e10'

至少一个参数没有被指定值
===================================================
其实还是未能读取mq和dj
改成:group by ph,mq 这样就会读取mq,但不能读取dj

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-12-20 20:27
zhongx
Rank: 2
等 级:论坛游民
威 望:1
帖 子:370
专家分:42
注 册:2007-8-16
得分:0 
改成group by ph,mq,dj是不可以的,我试过了.
还少个参数?是使用了max ,去掉就没有了.

有没有其它办法实现呢?

感动常在,每天进步一点点,开心学习在编程论坛。
http://www.
2007-12-20 21:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-193020-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.089970 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved