关于在数据库取最大编号值的问题,请指教?
如何将以下数据取最大编号值?
主表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
*/