【发布时间】:2015-06-11 20:02:49
【问题描述】:
我可以得到帮助,不知道如何实现这一点。
我有一个 11 列的表格。
第 2 列到第 10 列由特定属性和属性值组成。
例如:直径--> DVALUE
Width-- > WVALUE
结果集应包括结果 1|结果2|结果 3...
Result 1、result2 这些等于attribute_value 列。
我需要知道属性值列中的任何数据是否无效,那么特定属性应该在相应的结果列中输出。
例如:-
SKU ,Diameter ,DVALUE ,Width ,WVALUE ,Bolt 1 ,Bolt_1_VALUE ,Bolt 2 ,Bolt2_VALUE ,Nut Design ,Nut_Design_VALUE
AR105 ,Diameter ,68 ,Width ,10 ,Bolt 1 ,114.3 ,Bolt 2 ,NULL ,Nut Design ,Acorn
AR105MB ,Diameter ,18 ,Width ,10 ,Bolt 1 ,114.3 ,Bolt 2 ,NULL ,Nut Design ,Acorn
M8861A ,Diameter ,22 ,Width ,8 ,Bolt 1 ,150.1 ,Bolt 2 ,NULL ,Nut Design ,Acorn
RAR105M8 ,Diameter ,18 ,Width ,8 ,Bolt 1 ,120.7 ,Bolt 2 ,NULL ,Nut Design ,Biscuit
ZM8865A ,Diameter ,18 ,Width ,8 ,Bolt 1 ,114.3 ,Bolt 2 ,NULL ,Nut Design ,Acorn
以下条件用于检查属性值中的数据
直径值不应大于 20
宽度值不应大于 10
bolt 的值不应大于 130
坚果设计中只有 Acorn 的值是 ALLOW
结果
Result1 ,Result2, Result3, Result4, Result5
Diameter,'', '', '', ''
'', '', '', '', ''
'Diameter','', 'Bolt 1', '', ''
'', '', '', '', Nut Design
DECLARE @TABLE TABLE
(
SKU VARCHAR (50),
Diameter VARCHAR (50),
DVALUE VARCHAR (50),
Width VARCHAR (50),
WVALUE VARCHAR (50),
Bolt1 VARCHAR (50),
Bolt_1_VALUE VARCHAR (50),
Bolt2 VARCHAR (50),
Bolt2_VALUE VARCHAR (50),
NutDesign VARCHAR (50),
Nut_Design_VALUE VARCHAR (50)
)
INSERT @TABLE
SELECT 'AR105' ,'Diameter' ,'68' ,'Width' ,'10' ,'Bolt 1' ,'114.3' ,'Bolt 2' ,NULL ,'Nut Design' ,'Acorn' UNION ALL
SELECT 'AR105MB','Diameter' ,'18' ,'Width' ,'10' ,'Bolt 1' ,'114.3 ' , 'Bolt 2' ,NULL ,'Nut Design' ,'Acorn' UNION ALL
SELECT 'M8861A' ,'Diameter' ,'22' ,'Width' ,'8' ,'Bolt 1' ,'150.1' ,'Bolt 2' ,NULL ,'Nut Design' ,'Acorn' UNION ALL
SELECT 'RAR105M8','Diameter' ,'18' ,'Width' ,'8' ,'Bolt 1' ,'120.7' ,'Bolt 2' ,NULL ,'Nut Design' ,'Biscuit' UNION ALL
SELECT 'ZM8865A' ,'Diameter' ,'18' ,'Width' ,'9' ,'Bolt 1' ,'114.3' ,'Bolt 2' ,NULL ,'Nut Design' ,'Acorn'
SELECT * FROM @TABLE
对于宽度,我们需要检查其他表 2,如果值存在于表 1 中但不存在于表 2 中,那么它应该在输出中。
声明@table2 表 ( 宽度 varchar (50) )
插入@table2 选择“5”联合所有 选择'8'并集所有
【问题讨论】:
标签: sql sql-server tsql