请教个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
--------------------编程问答--------------------
--------------------编程问答-------------------- 楼上的可以 --------------------编程问答-------------------- 解决了 jf 嘿嘿 --------------------编程问答--------------------
--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)
可以结贴了 --------------------编程问答-------------------- 1楼2楼正解
补充:.NET技术 , ASP.NET