Access 数据库如何“自选最多的一个”,“最新的日期”,“求和”

xingxueying 2005-07-11 05:22:21
请问,

Access 数据库如何“自选最多的一个”,“最新的日期”,“求和”

如下表格:


产品 产地 生产日期 数量

海飞丝 广州 1999 30
海飞丝 广州 2000 50
海飞丝 北京 2000 20
飘柔 上海 2001 10
飘柔 北京 2000 40
飘柔 上海 2005 70
飘柔 上海 2000 30
飘影 北京 1990 10
飘影 北京 1991 10
飘影 北京 1991 30
飘影 香港 2005 20
丝芬 上海 2002 30
丝芬 广州 2003 15
丝芬 上海 2005 25
芬亭 广州 2002 30
芬亭 重庆 2001 80
芬亭 上海 2001 70

--------------------------------------------

让上面这个 Access 的 所有相同 “产品” 自动合为一条计录

合成的条件为:

产地(以较多为准) 如:海飞丝 有两个“广州”,一个 “北京”, 那就只取“广州”

生产日期(以最新日期为准) 如:丝芬 有: 2002 2003 2005 ,那就只取 “2005”

数量(以同一产品合计数量) 如:海飞丝 有: 30 50 20 ,那这一产品就合计为 “100”


请大家尽量帮帮忙,谢谢!我剩有多少分一定给多少分!! 能解决的把分数全给你! 急啊。。


或者用 Excel :
http://community.csdn.net/Expert/topic/4137/4137314.xml?temp=.4018824


...全文
200 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2005-07-21
  • 打赏
  • 举报
回复
不会吧,我测试过,没有问题。你测试过吗?
vbman2003 2005-07-21
  • 打赏
  • 举报
回复
to:wwwwb()
你的这个应该可以,不过有点小错吧?好象楼主要的是"产品的最新日期",不是“产品最大产地的最新日期”。
wwwwb 2005-07-21
  • 打赏
  • 举报
回复
精简一些
select d.*,e.* from
(select 产品,sum(数量) as 数量q from qq2 group by 产品) d inner join
(select * FROM (select 产品,产地,max(生产日期) as rq ,sum(数量) as 数量b FROM qq2 group by 产品,产地 ORDER BY 1,4) b WHERE 数量b=
(SELECT TOP 1 数量c FROM (select 产品,产地,max(生产日期) as rq ,sum(数量) as 数量c FROM qq2 group by 产品,产地 ORDER BY 1,4)
WHERE 产品=b.产品 ORDER BY 数量c DESC )) e on d.产品=e.产品
vbman2003 2005-07-21
  • 打赏
  • 举报
回复
表名:tb
产品:product
日期:dates
产地:address
数量:qty

O1:产品,最新日期,求和:
select product, max(dates) AS d, sum(qty) AS q
from tb
group by product


Q2: 产品,产地,产地次数:
select product, address, count(address) AS cnt
from tb
group by product, address
order by product, count(address)

Q3: 从Q2:可以查询产品,产地,最大产地次数:
select a.product, max(a.address) as addr
from
(
select product, address, count(address) as cnt
from tb
group by product, address
order by product, count(address)
) a inner join
(
select product,max(cnt) as c
from (select product, address, count(address) as cnt
from tb
group by product, address
order by product, count(address)) group by product
) b on a.product=b.product and a.cnt=b.c
group by a.product

Q4: Q1与Q3联接查询,就可以得到楼主要的结果:
select q1.product,addr, d, q
from q1 inner join q3
on q1.product=q3.product

完整的写法,楼主自己试吧,呵呵
wwwwb 2005-07-20
  • 打赏
  • 举报
回复
产地(以较多为准)是最多吗?
wwwwb 2005-07-19
  • 打赏
  • 举报
回复
根据你的记录:
芬亭 广州 2002 180 应为
芬亭 重庆 2002 180
飘影 北京 1991 70 应为
飘影 北京 2005 70
wwwwb 2005-07-19
  • 打赏
  • 举报
回复
试试:
SELECT *
FROM [select 产品,max(生产日期) as rq ,sum(数量) as 数量b FROM qq2 group by 产品]. AS b INNER JOIN [SELECT b.产品,b.数量,c.产地 FROM (SELECT 产品,MAX(数量dd) as 数量1 from (select 产品,产地,max(生产日期) as rq ,sum(数量) as 数量dd FROM qq2 group by 产品,产地 ) dd GROUP BY 产品) as b
INNER JOIN
(select 产品,产地,max(生产日期) as rq ,sum(数量) as 数量c FROM qq2 group by 产品,产地 ) c
ON c.产品=b.产品 AND c.数量c=b.数量b]. AS c ON c.产品=b.产品;
ACCESS2000下调试通过
clovexmu 2005-07-18
  • 打赏
  • 举报
回复
如果没有产地倒是蛮好求的:

select 产品,max(日期),sum(数量) as 数量 from 表1 group by 产品
clovexmu 2005-07-14
  • 打赏
  • 举报
回复
关注。
xingxueying 2005-07-12
  • 打赏
  • 举报
回复
合并后的表格如下:

产品 产地 生产日期 数量

海飞丝 广州 2000 100
飘柔 上海 2005 150
飘影 北京 1991 70
丝芬 上海 2005 70
芬亭 广州 2002 180


合成的条件顺序为:

先是同一产品,再以产地,再以生产日期,接着是数量的合计


请教各位,要怎么解决啊?谢谢!
DawnPine 2005-07-12
  • 打赏
  • 举报
回复
select * from mytable
order by year(MyDate) & month((MyDate) & day(MyDate)
and priority
and status


不知道你的"记录时间"是什么格式, 这里假定是 DateTime 格式把ACCESS数据库的内容导入EXCEL

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧