编号 客户 型号 单位 部件 数量
AB001 康华电子 K240QVK-V20-F PCS FPA 3
AB001 康华电子 K240QVK-V20-F PCS LCD 2
AB001 康华电子 K240QVK-V20-F PCS TP 17
AB001 康华电子 K240QVK-V34-F PCS TP 1
AB001 康华电子 K240QVK-V36-F PCS FPA 2
AB001 康华电子 K240QVK-V36-F PCS LCD 4
AB002 康华电子 K240QVK-V36-F PCS TP 15
AB002 康华电子 K240QVK-V39-F PCS LCD 1
AB002 康华电子 K240QVK-V39-F PCS TP 5
AB002 康华电子 K240QVK-V42-F PCS LCD 1
AB002 康华电子 K240QVK-V42-F PCS TP 4
AB002 康华电子 K240QVK-V45-F PCS TP 3
-----------------------------------------------------------编号 客户 型号 单位 部件 数量
AB001 康华电子 K240QVK-V20-F PCS FPA 3
PCS LCD 2
PCS TP 17
K240QVK-V34-F PCS TP 1
K240QVK-V36-F PCS FPA 2
PCS LCD 4
AB002 康华电子 K240QVK-V36-F PCS TP 15
K240QVK-V39-F PCS LCD 1
PCS TP 5
K240QVK-V42-F PCS LCD 1
PCS TP 4
K240QVK-V45-F PCS TP 3能否用查询语句实现,请指教
AB001 康华电子 K240QVK-V20-F PCS FPA 3
AB001 康华电子 K240QVK-V20-F PCS LCD 2
AB001 康华电子 K240QVK-V20-F PCS TP 17
AB001 康华电子 K240QVK-V34-F PCS TP 1
AB001 康华电子 K240QVK-V36-F PCS FPA 2
AB001 康华电子 K240QVK-V36-F PCS LCD 4
AB002 康华电子 K240QVK-V36-F PCS TP 15
AB002 康华电子 K240QVK-V39-F PCS LCD 1
AB002 康华电子 K240QVK-V39-F PCS TP 5
AB002 康华电子 K240QVK-V42-F PCS LCD 1
AB002 康华电子 K240QVK-V42-F PCS TP 4
AB002 康华电子 K240QVK-V45-F PCS TP 3
-----------------------------------------------------------编号 客户 型号 单位 部件 数量
AB001 康华电子 K240QVK-V20-F PCS FPA 3
PCS LCD 2
PCS TP 17
K240QVK-V34-F PCS TP 1
K240QVK-V36-F PCS FPA 2
PCS LCD 4
AB002 康华电子 K240QVK-V36-F PCS TP 15
K240QVK-V39-F PCS LCD 1
PCS TP 5
K240QVK-V42-F PCS LCD 1
PCS TP 4
K240QVK-V45-F PCS TP 3能否用查询语句实现,请指教
AB001 康华电子 K240QVK-V20-F PCS FPA 3
PCS LCD 2
PCS TP 17
K240QVK-V34-F PCS TP 1
K240QVK-V36-F PCS FPA 2
PCS LCD 4
AB002 康华电子 K240QVK-V36-F PCS TP 15
K240QVK-V39-F PCS LCD 1
PCS TP 5
K240QVK-V42-F PCS LCD 1
PCS TP 4
K240QVK-V45-F PCS TP 3
create table #
(
c1 varchar(10)
,c2 varchar(10)
)
insert # select 'f1','1' union all select 'f1','2' union all select 'f2','1' union all select 'f2','2'
insert # select 'f1','3' union all select 'f1','4' union all select 'f2','5' union all select 'f2','6'
select case when exists (select 1 from # where c1=s.c1 and c2<s.c2) then '' else c1 end as newc1,c2 from # s order by c1,c2Go
-- Author: liangCK 小梁
---------------------------------
--> 生成测试数据: @T
DECLARE @T TABLE (编号 VARCHAR(5),客户 VARCHAR(8),型号 VARCHAR(13),单位 VARCHAR(3),部件 VARCHAR(3),数量 INT)
INSERT INTO @T
SELECT 'AB001','康华电子','K240QVK-V20-F','PCS','FPA',3 UNION ALL
SELECT 'AB001','康华电子','K240QVK-V20-F','PCS','LCD',2 UNION ALL
SELECT 'AB001','康华电子','K240QVK-V20-F','PCS','TP',17 UNION ALL
SELECT 'AB001','康华电子','K240QVK-V34-F','PCS','TP',1 UNION ALL
SELECT 'AB001','康华电子','K240QVK-V36-F','PCS','FPA',2 UNION ALL
SELECT 'AB001','康华电子','K240QVK-V36-F','PCS','LCD',4 UNION ALL
SELECT 'AB002','康华电子','K240QVK-V36-F','PCS','TP',15 UNION ALL
SELECT 'AB002','康华电子','K240QVK-V39-F','PCS','LCD',1 UNION ALL
SELECT 'AB002','康华电子','K240QVK-V39-F','PCS','TP',5 UNION ALL
SELECT 'AB002','康华电子','K240QVK-V42-F','PCS','LCD',1 UNION ALL
SELECT 'AB002','康华电子','K240QVK-V42-F','PCS','TP',4 UNION ALL
SELECT 'AB002','康华电子','K240QVK-V45-F','PCS','TP',3--SQL查询如下:SELECT
编号=CASE WHEN 编号_rid=1 THEN 编号 ELSE '' END,
客户=CASE WHEN 客户_rid=1 THEN 客户 ELSE '' END,
型号=CASE WHEN 型号_rid=1 THEN 型号 ELSE '' END,
单位,部件,数量
FROM (
SELECT
编号,客户,型号,单位,部件,数量,
编号_rid=ROW_NUMBER() OVER(PARTITION BY 编号 ORDER BY 编号),
客户_rid=ROW_NUMBER() OVER(PARTITION BY 编号,客户 ORDER BY 编号),
型号_rid=ROW_NUMBER() OVER(PARTITION BY 编号,客户,型号 ORDER BY 编号),
编号 AS flag
FROM @T
) AS A
ORDER BY flag/*
编号 客户 型号 单位 部件 数量
----- -------- ------------- ---- ---- -----------
AB001 康华电子 K240QVK-V20-F PCS FPA 3
PCS LCD 2
PCS TP 17
K240QVK-V34-F PCS TP 1
K240QVK-V36-F PCS FPA 2
PCS LCD 4
AB002 康华电子 K240QVK-V36-F PCS TP 15
K240QVK-V39-F PCS LCD 1
PCS TP 5
K240QVK-V42-F PCS LCD 1
PCS TP 4
K240QVK-V45-F PCS TP 3(12 行受影响)
*/