要求: 按 lct1, lct2 排序后的前两条纪录,显示为下列结果:
item_cd1 item_cd2 lct
01 a A01-3 B01-1
建表准备:
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'm_lct_service')
DROP TABLE m_lct_service
GO
CREATE TABLE m_lct_service (
item_cd1 nvarchar(5) NOT NULL
,item_cd2 nvarchar(10) NOT NULL
,seq_no int NOT NULL
,lct1 nvarchar(3) NOT NULL
,lct2 nvarchar(3) NOT NULL
,stk_qty numeric(15,4)
,ins_emp_cd nvarchar(4) NOT NULL
,ins_date datetime NOT NULL
,upd_emp_cd nvarchar(4) NOT NULL
,upd_date datetime NOT NULL
,CONSTRAINT pk_m_lct_service PRIMARY KEY (
item_cd1
,item_cd2
,seq_no
,lct1
,lct2
)
)
GO
数据准备:
item_cd1 item_cd2 seq_no lct1 lct2 stk_qty ins_emp_cd ins_date upd_emp_cd upd_date
01 a 1 A01 3 20.0000 fan 2010-01-02 00:00:00.000 fan 2010-01-02 00:00:00.000
01 a 2 B01 1 20.0000 fan 2010-01-02 00:00:00.000 fan 2010-01-02 00:00:00.000
01 a 3 B01 4 20.0000 fan 2010-01-02 00:00:00.000 fan 2010-01-02 00:00:00.000
实际Sql:
select item_cd1,item_cd2,
case when (AA <> BB)
then AA + ' ' + BB
else AA
end as lct
from(
select item_cd1,item_cd2,min(lct) as AA,max(lct) as BB
from (select top 2 item_cd1, item_cd2,(lct1 + '-' + lct2) as lct from m_lct_service order by lct1 asc, lct2 asc) as t
group by item_cd1,item_cd2
) as t1