寻求一SQL语句,关于求每个项目的最大值(见下面数据)!!!
记录数据如下:
日期 科目类型 借方
200401 经费支出—会议费 100
200401 经费支出—差旅费 120
。。。
200402 经费支出—会议费 200
200402 经费支出—宣传费 130
。。。
200412。。。
现在我想求得各个费用的最大值以及它所在的月份,请问我应该怎么求?
问题点数:20、回复次数:18Top
1 楼lsxaa(小李铅笔刀)回复于 2004-12-02 15:49:05 得分 1
select *
from t a
where not exists(select 1 from t where 科目类型=a.科目类型 and 借方>a.借方)Top
2 楼WangZWang(先来)回复于 2004-12-02 15:50:58 得分 1
select a.* from table as a
inner join
(Select 科目类型,max(借方) as 借方
from table
group by 科目类型) as b
on a.科目类型=b.科目类型 and a.借方=b.借方Top
3 楼vinsonshen(为了明天)回复于 2004-12-02 15:52:38 得分 1
select * from 表 a where not exists (select * from 表 where 科目类型=a.科目类型 and 借方>a.借方)Top
4 楼vinsonshen(为了明天)回复于 2004-12-02 15:53:19 得分 0
顶,又给小李子动作快我一步Top
5 楼hawk_js(鹰)回复于 2004-12-02 15:54:03 得分 0
更正一下数据记录形式:
日期 凭证号 科目类型 借方
200401 经费支出—会议费 100
200401 经费支出—差旅费 120
200401 经费支出—会议费 300 (可以重复)
。。。
200402 经费支出—会议费 200
200402 经费支出—宣传费 130
。。。
200412。。。
Top
6 楼iswear428(黄沙百战穿金甲,不破楼兰终不还)回复于 2004-12-02 15:55:59 得分 1
select b.*
from table as b
inner join
(select 科目类型,max(借方) from table group by 科目类型 ) as a
on b.科目类型 = a.科目类型 and a.借方=b.借方Top
7 楼vinsonshen(为了明天)回复于 2004-12-02 15:56:08 得分 1
以上重复
200401 经费支出—会议费 100
200401 经费支出—差旅费 120
200401 经费支出—会议费 300 (可以重复)
一样的
select * from 表 a where not exists (select * from 表 where 科目类型=a.科目类型 and 借方>a.借方)
Top
8 楼hawk_js(鹰)回复于 2004-12-02 16:04:35 得分 0
请问如果我想求得每一个科目类型在12个月中,哪个月的合计值最大,怎么求?就是想得到:
科目类型 月份 月合计金额
经费支出—会议费 01
经费支出—差旅费 01
经费支出—宣传费 04
。。。Top
9 楼wangganyang(海洋)回复于 2004-12-02 16:06:37 得分 0
upTop
10 楼hawk_js(鹰)回复于 2004-12-02 16:33:39 得分 0
再问问;)Top
11 楼lijiye19810413(继业)回复于 2004-12-02 17:12:13 得分 1
select 月份,max(月合计金额) from tablename group by 月份Top
12 楼hawk_js(鹰)回复于 2004-12-02 17:16:27 得分 0
那么如何把求(月合计金额)的SQL语句与
select 月份,max(月合计金额) from tablename group by 月份
嵌套起来呢?Top
13 楼scorpiowell(年年岁岁花相似,岁岁年年人不同)回复于 2004-12-02 17:21:18 得分 1
select 科目类型,月份,月合计金额
from your_table a
where 月合计金额=(select Max(月合计金额) from your_table where 科目类型=a.科目类型 group by 科目类型)Top
14 楼yangh44(涉世之初)回复于 2004-12-02 17:26:52 得分 1
select a.month(日期),a.科目类型,a.借方
from TableName a
where a.借方 > (select b.借方
from TableName b)
group by 科目类型Top
15 楼yangh44(涉世之初)回复于 2004-12-02 17:29:42 得分 0
刚才有误!
特此更正!!
select a.month(日期),a.科目类型,a.借方
from TableName a
where a.借方 > (select b.借方
from TableName b
where a.科目类型 = b.科目类型)
group by 科目类型
Top
16 楼lijiye19810413(继业)回复于 2004-12-02 17:52:53 得分 1
更正:
select 科目类型,月份,max(月合计金额) from tablename group by 科目类型,月份
你要是想看到合计的话,可以再用下面的语句:
select 科目类型,月份,sum(max(月合计金额)) from tablename group by 科目类型,月份
我记得还有一个关键字能够直接起到第二个语句的作用,但是,我忘记应该怎么写了!不好意思!
你可以自己建立一张表,用上面的语句归集到的数据插入进去,然后,在用第二个语句将总计更新上去!这样就麻烦点了!Top
17 楼jianxin_js(兔)回复于 2004-12-03 16:11:14 得分 10
select *
from
(SELECT 科目 as km, right(日期,2) as rq, sum(借方) as hj
FROM 凭证
WHERE 科目1='经费支出'
GROUP BY 科目, right(日期,2)) tbTemp
where not exists (
select 1 from
(SELECT 科目 as km, right(日期,2) as rq, sum(借方) as hj
FROM 凭证
WHERE 科目1='经费支出'
GROUP BY 科目, right(日期,2)) tbTemp1
where tbTemp.km=tbTemp1.km
and tbTemp.hj<tbTemp1.hj)
Top
18 楼zhang_yzy(六子儿)回复于 2004-12-03 17:41:44 得分 1
日期 科目类型 借方
select max(日期),b.科目类型,b.借方
from table a
inner join (select 科目类型,max(借方)
from table
group by 科目类型 ) b
on a.科目类型=b.科目类型 and a.借方=b.借方
group by b.科目类型,b.借方
Top




