当前位置:编程学习 > C#/ASP.NET >>

请教个SQL SERVER语句 ,系统不让在技术区发

设:一数据表有字段及记录如下
编号  卡号   姓名   交款日期     交款数额
001   1003   王兰   2009.01.01    123.56
002   1006   张怀   2009.01.04    145.28
003   1003   王兰   2009.01.07    220.00
004   1003   王兰   2009.01.09    456.20
005   1006   张怀   2009.01.06    21.60
006   1006   张怀   2009.03.04    48.33
007   1003   王兰   2009.01.12    222.30
008   1003   王兰   2009.01.18    425.11
…………

想得到同一卡号最后的交款数额,看起来如下结果:
008   1003   王兰   2009.01.18    425.11
006   1006   张怀   2009.03.04    48.33

多谢!
--------------------编程问答-------------------- 以下两种都可以实现:

select * from Table1 where 编号 in(select max(编号) from Table1 group by 卡号) order by 卡号 asc


select * from Table1 where 交款日期 in(select max(交款日期) from Table1 group by 卡号) order by 卡号 asc

--------------------编程问答--------------------

--CREATE TABLE TB 
--(
--  编号 NVARCHAR(20),
--  卡号 NVARCHAR(20),
--  姓名 NVARCHAR(20),
--  交款日期 DATETIME,
--  交款数额 DECIMAL(10,2)
--)

--INSERT INTO TB VALUES('001','1003','王兰','2009.01.01','123.56')
--INSERT INTO TB VALUES('002','1006','张怀','2009.01.04','145.28')
--INSERT INTO TB VALUES('003','1003','王兰','2009.01.07','220.56')
--INSERT INTO TB VALUES('004','1003','王兰','2009.01.09','456.20')
--INSERT INTO TB VALUES('005','1006','张怀','2009.01.06','21.60')
--INSERT INTO TB VALUES('006','1006','张怀','2009.03.04','48.33')
--INSERT INTO TB VALUES('007','1003','王兰','2009.01.12','222.30')
--INSERT INTO TB VALUES('008','1003','王兰','2009.01.18','425.11')

SELECT TB.* FROM TB 
inner JOIN ( SELECT DISTINCT 卡号 AS 卡号 ,MAX(交款日期) AS 交款日期   FROM TB  GROUP BY 卡号 ) t
on  TB.卡号 = t.卡号 AND TB.交款日期 =t.交款日期
ORDER BY TB.卡号

--编号                   卡号                   姓名                   交款日期                    交款数额
---------------------- -------------------- -------------------- ----------------------- ---------------------------------------
--008                  1003                 王兰                   2009-01-18 00:00:00.000 425.11
--006                  1006                 张怀                   2009-03-04 00:00:00.000 48.33

--(2 row(s) affected)


--------------------编程问答-------------------- 楼上的可以 --------------------编程问答-------------------- 解决了 jf 嘿嘿 --------------------编程问答--------------------
引用 2 楼 q107770540 的回复:
SQL code

--CREATE TABLE TB 
--(
--  编号 NVARCHAR(20),
--  卡号 NVARCHAR(20),
--  姓名 NVARCHAR(20),
--  交款日期 DATETIME,
--  交款数额 DECIMAL(10,2)
--)

--INSERT INTO TB VALUES('001','1003','王兰','2009.01.01',……


           可以结贴了 --------------------编程问答-------------------- 1楼2楼正解
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,