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

请帮助写个SQL语句,要求一句话能完成.
以下为生成的结果

供应商 订单编号
001 PO001
PO002
PO003
PO004
002 AB001
AB002


供应商表:
id name
001 001 english name
002 002 english name

订单表:
ponbr vendor
001 PO001
001 PO002
001 PO003
001 PO004
002 AB001
002 AB002

以前看到有人写过,一下子想不起来如何写了,一个LEFT JOIN就能完成的.

------解决方案--------------------
SQL code
create table 订单表(ponbr varchar(10),vendor varchar(10))
insert into 订单表 values('001', 'PO001')
insert into 订单表 values('001', 'PO002')
insert into 订单表 values('001', 'PO003')
insert into 订单表 values('001', 'PO004')
insert into 订单表 values('002', 'AB001')
insert into 订单表 values('002', 'AB002')
go

select case when vendor = (select top 1 vendor from 订单表 where ponbr = t.ponbr order by vendor) then ponbr else '' end 供应商 , vendor 订单编号 from 订单表 t
/*
供应商        订单编号       
---------- ---------- 
001        PO001
           PO002
           PO003
           PO004
002        AB001
           AB002

(所影响的行数为 6 行)
*/

select case when vendor = (select min(vendor) from 订单表 where ponbr = t.ponbr) then ponbr else '' end 供应商 , vendor 订单编号 from 订单表 t
/*
供应商        订单编号       
---------- ---------- 
001        PO001
           PO002
           PO003
           PO004
002        AB001
           AB002

(所影响的行数为 6 行)
*/

drop table 订单表