首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于在数据库取最大编号值的有关问题,

2012-01-31 
关于在数据库取最大编号值的问题,请指教?如何将以下数据取最大编号值?主表1表结构:编号号码套餐名称最后操

关于在数据库取最大编号值的问题,请指教?
如何将以下数据取最大编号值?

主表1表结构:
编号号码套餐名称最后操作编号
201000000112A包104
202000000112B包106
203000000112C包107

明细表2表结构:
编号号码收看日期...
101000000112......
102000000112......
103000000112......
104000000112......
105000000112......
106000000112......
107000000112......


需要经查询处理后结果:
104000000112A包
106000000112B包
107000000112C包

请大家别推荐这种方法:
SELECT     MAX(a.编号)   AS   编号,a.号码,b.套餐名称
FROM   表1   a   JOIN   表2   b   ON   a.号码=b.号码
GROUP   BY   a.号码,b.套餐名称

因为得出来的结果是:
107000000112A包
107000000112B包
107000000112C包

[解决办法]
對嘛,少了關聯條件。

稍微修改下你的代碼,即可得到你要的結果

SELECT MAX(b.编号) AS 编号, a.号码, a.套餐名称
FROM 表1 a JOIN 表2 b ON a.号码=b.号码 And a.套餐名称 = b.套餐包
GROUP BY a.号码, a.套餐名称
[解决办法]
Create Table 表1
(编号Char(3),
号码Char(9),
套餐名称Varchar(10))
Insert 表1 Select '201 ', '000000112 ', 'A包 '
Union All Select '202 ', '000000112 ', 'B包 '
Union All Select '203 ', '000000112 ', 'C包 '

Create Table 表2
(编号Char(3),
号码Char(9),
套餐包Varchar(10))
Insert 表2 Select '101 ', '000000112 ', 'A包 '
Union All Select '102 ', '000000112 ', 'B包 '
Union All Select '103 ', '000000112 ', 'C包 '
Union All Select '104 ', '000000112 ', 'A包 '
Union All Select '105 ', '000000112 ', 'B包 '
Union All Select '106 ', '000000112 ', 'B包 '
Union All Select '107 ', '000000112 ', 'C包 '
GO
SELECT a.编号, a.号码, a.套餐名称, MAX(b.编号) AS 最后操作编号
FROM 表1 a JOIN 表2 b ON a.号码=b.号码 And a.套餐名称 = b.套餐包
GROUP BY a.编号, a.号码, a.套餐名称
GO
Drop Table 表1, 表2
--Result
/*
编号号码套餐名称最后操作编号
201000000112A包104
202000000112B包106
203000000112C包107
*/

热点排行