asp access同一数据表重复记录筛选难题求解?

hnljlhs 2012-07-09 08:32:02
asp access同一数据表重复记录筛选难题求解?

有一个商品表T1,表中商品有重复,每个顾客每天同一种商品只能购买一次
相同商品只显示ID最小的,今天已购买过的相同商品不显示

T1表数据如下
ID(商品ID) Title(商品标题) GID(客户ID) Date(购买日期/时间)
1 商品A 1 2012-7-9 18:10:23
2 商品A 0
3 商品A 0
4 商品B 0 2012-7-8 15:33:12
5 商品B 0
6 商品B 0

如何查询让客户ID=1的客户今天可以购买的商品如下,相同商品只显示ID小的记录,重复的不显示
5 商品B 0

假设ID=5的商品客户今天没购买那么客户ID=1的客户明天显示的可以购买的商品应该是:
2 商品A 0
5 商品B 0

不知道能不能实现这样的查询.
如果不能在一张表中实现,也可用多表的方法,求高手指点,谢谢了.
...全文
220 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnljlhs 2012-07-25
  • 打赏
  • 举报
回复
想用一条语句得到查询结果是没办法了,复杂的应用功能,可能会要求多个查询语句才能解决,多个查询语句还要考虑数据量,服务器负载,这个问题可能是复杂了点
谢谢ACMAIN_CHM的热心回答.
ACMAIN_CHM 2012-07-10
  • 打赏
  • 举报
回复
select top 1 * from T1 a
where not exists (select 1 from T1 where Title=a.Title and GID=1)
order by id
wwwwb 2012-07-10
  • 打赏
  • 举报
回复
为什么没有ID=4的记录?
hnljlhs 2012-07-10
  • 打赏
  • 举报
回复
查询的条件我只能用文字描述了,因为我不会写查询语句才发的求救贴:
1.当天客户可以购买的同名商品,查询结果中只显示ID最小的那个
2.当天客户已购买过的同名商品,查询结果中不显示
这二个条件必须同时满足
hnljlhs 2012-07-10
  • 打赏
  • 举报
回复
假设今天是:2012-7-9
如果不过滤重复的商品,那么查询得到客户ID=1的客户今天能购买的商品结果是:
(因为商品A客户ID=1的客户今天已购买了,所以就算有没购买的商品A,查询也要过滤掉.)
5 商品B 0
6 商品B 0


但是同名的商品只显示ID小的那个,我想要的是这个最终的结果
5 商品B 0
wwwwb 2012-07-10
  • 打赏
  • 举报
回复
如何查询让客户ID=1的客户今天可以购买的商品如下,相同商品只显示ID小的记录,重复的不显示
5 商品B 0

假设ID=5的商品客户今天没购买那么客户ID=1的客户明天显示的可以购买的商品应该是:
2 商品A 0
5 商品B 0

简要说明一下结果是怎样得出的
ACMAIN_CHM 2012-07-10
  • 打赏
  • 举报
回复
你的测试数据在哪儿?
hnljlhs 2012-07-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
select top 1 * from T1 a
where not exists (select 1 from T1 where Title=a.Title and GID=1)
order by id
[/Quote]

还是不行,查询不到数据
hnljlhs 2012-07-10
  • 打赏
  • 举报
回复
测试运行环境:asp+access+IIS
数据库文件:data.mdb
数据表:T1
T1结构:
字段 值 说明
ID 自动编号
Title 文本 商品标题
GID 数字 客户ID
Date 日期时间 购买日期
ACMAIN_CHM 2012-07-10
  • 打赏
  • 举报
回复

建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

hnljlhs 2012-07-10
  • 打赏
  • 举报
回复
4 商品B 0 2012-7-8 15:33:12
已购买的商品不会再显示出来了
hnljlhs 2012-07-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
select top 1 from T1 a
where not exists (select 1 from T1 where Title=a.Title and GID=1)
order by id
[/Quote]

tsql="select top 1 from T1 a where not exists (select * from T1 where Title=a.Title and GID=1) order by id"
哪里写错了么?刚测试了一下没查询到结果
ACMAIN_CHM 2012-07-09
  • 打赏
  • 举报
回复
select top 1 from T1 a
where not exists (select 1 from T1 where Title=a.Title and GID=1)
order by id

7,713

社区成员

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

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