日期:2014-05-18  浏览次数:20513 次

求个SQL
数据库列
no sno ino useid
11 111-1 11-1 xxx
11 111-2 11-2 yyy
12 112-1 12-1 jjj
12 112-2 12-2 kkk
12 112-3 12-3 uuu

no列为批号 第一批第二批的意思 第三列是批号+序号  
我现在想查询 每一个批的数据 批的数据显示批内哪一条都可以 比如
11 xxx 或 11 yyy都可以 但只查一条
查询结果为

11 xxx
12 jjj

11 yyy
12 kkk 或uuu 都没问题

------解决方案--------------------
SQL code

IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'tba')
BEGIN
    DROP TABLE tba
END
GO
CREATE TABLE tba
(
    no INT,
    sno VARCHAR(10),
    ino VARCHAR(10),
    useid VARCHAR(10)
)
GO
INSERT INTO tba
SELECT 11, '111-1', '11-1', 'xxx' UNION
SELECT 11, '111-2', '11-2', 'yyy' UNION
SELECT 12, '112-1', '12-1', 'jjj' UNION
SELECT 12, '112-2', '12-2', 'kkk' UNION
SELECT 12, '112-3', '12-3', 'uuu'

SELECT * FROM tba AS T
WHERE (SELECT COUNT(1) FROM tba WHERE t.no = no AND sno > t.sno) < 1

no    sno    ino    useid
11    111-2    11-2    yyy
12    112-3    12-3    uuu