求关于SQL先后的查询

[复制链接]
查看11 | 回复3 | 2008-12-16 14:04:17 | 显示全部楼层 |阅读模式
有三个表:分类表;图书表;销售表.
字段:分类表字段:分类编号;分类名称.......

图书表字段:图书编号;图书名称;分类编号;分类名称......

销售表字段:图书编号;销售数量;销售日期......
条件是:销售表.图书编号=图书表.图书编号;

图书表.分类编号=分类表.分类编号
具体记录如下:
分类表:
分类编号;分类名称......

A01;初中语文

B01;初中数学

C01;初中历史
......
图书表:
图书编号;图书名称;分类编号;......
A0101;初一语文;A01;
A0102;初二语文;A01;
A0103;初三语文;A01;
B0101;初一数学;B01;
B0102;初二数学;B01;
B0103;初三数学;B01;
C0101;初一历史;C01;
C0102;初二历史;C01;
C0103;初三历史;C01;
......
销售表:
图书编号;销售数量;销售日期......
A0101;
100;2008-01-10
A0102;
100;2008-01-12
A0101;
100;2008-02-10
B0101;
100;2007-01-10
B0103;
60;2008-01-10
C0101;
100;2007-11-10
返回结果:A01;初中语文;A0101;初一语文;100;2008-01-10

B01;初中数学;B0101;初一数学;100;2007-01-10

C01;初中历史;C0101;初一历史;100;2007-11-10
也就是要返回同一个分类中最早销售的分类编号;分类名称;图书编号;图书名称;销售数量;销售日期.
sytdeedee的不对,我要的是最早的一个不是从早到晚排序
zhuhaoyue的如果不把图书表的内容返回的话是对的,但是返回图书表的图书编号和图书名称时,就会返回成为最早销售的图书编号,从而出现一个分类多个图书的最早记录(在示例中会返回五笔信息计五种图书).而我要的是同一个分类中只能有一个最早的记录(返回三笔信息,三类分类).而不是图书的最早销售记录.

回复

使用道具 举报

千问 | 2008-12-16 14:04:17 | 显示全部楼层
我没有测试过,貌似被group by误导了,改成这样试试select A.分类编号,A.分类名称,B.图书编号,B.图书名称,C.销售数量,C.销售日期from 分类表 A,图书表 B,销售表 C where 售表.图书编号=图书表.图书编号 and 图书表.分类编号=分类表.分类编号 and c.销售日期 in (select min(销售日期) from(select A.分类编号,A.分类名称,B.图书编号,B.图书名称,C.销售数量,C.销售日期from 分类表 A,图书表 B,销售表 C ) as xuni where xuni.销售日期=C.销售日期)...
回复

使用道具 举报

千问 | 2008-12-16 14:04:17 | 显示全部楼层
SQL2005下测试过,应该2000也没问题!SELECT LEFT(C.图书编号,3) AS 分类编号 ,A.分类名称 ,图书代号 = (SELECT C1.图书编号 FROM 销售表 C1 WHERE LEFT(C1.图书编号,3) = LEFT(C.图书编号,3) AND C1.销售日期 = (SELECT MIN(C2.销售日期)...
回复

使用道具 举报

千问 | 2008-12-16 14:04:17 | 显示全部楼层
select 分类编号,分类名称,图书编号,图书名称,销售数量,销售日期from 类表,图书表,销售表where 售表.图书编号=图书表.图书编号; and 图书表.分类编号=分类表.分类编号 groupby 分类编号,分类名称,图书编号,图书名称,销售数量,销售日期order by 销售日期 asc这样查询的结果就是按实际从早到...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行