2015-12-23 3 views
0

У меня есть две таблицы Driver и Application.Существование значения для конкретного столбца в таблице

В таблице Driver для конкретного parttype и Weightage больше, чем 100 и менее 600, есть атрибут name и значение в таблице application эти значения не должны быть NULL или пустыми в таблице приложения.

Если это поле пустым или NULL, то, что запись должна быть на выходе

DECLARE @DRIVER TABLE 
(
PartType VARCHAR (50), 
AttributeName VARCHAR (50), 
Weightage VARCHAR (50) 
) 


INSERT @DRIVER 


SELECT 'Air Filter', 'Shape', '100' UNION ALL 
SELECT 'Fender Flare', 'Color Group', '500' UNION ALL 
SELECT 'Tonneau Cover', 'Lead Type', '999' UNION ALL 
SELECT 'Lug Bolt', 'Thread Size', '100' 



DECLARE @application TABLE 
(
Part_Number VARCHAR (50), 
Part_Type VARCHAR (50),  
Description_1 VARCHAR (50) , 
Description_1_Value VARCHAR (50), 
Description_2 VARCHAR (50), 
Description_2_Value VARCHAR (50), 
Description_3 VARCHAR (50), 
Description_3_Value VARCHAR (50) 

) 

Insert @application 


SELECT 'AAA19-1405', 'Air Filter', 'Shape', 'Universal', 'Number 
Of Pieces', '2', 'Design', 'No Logo' Union All 
SELECT 'ZORLYM12', 'Air Filter', 'Shape', '',    'Number Of  
Pieces', '4', 'Design', 'No Logo' Union All 
SELECT 'AAA19-1508', 'Fender Flare', 'Type', 'Universal', 'Color 
Group', 'Red', 'Design', 'No Logo' Union All 
SELECT 'NORFLEX89', 'Fender Flare', 'Type', 'Universal', 'Color Group', 
NULL, 'Design', 'No Logo' Union All 
SELECT 'AAA19-2305', 'Lug Bolt', 'Type', 'Universal', 'Number Of 
Pieces', '4', 'Thread Size', 'MAX' UNION ALL 
SELECT 'BIOCONINSULIN', 'Lug Bolt', 'Type', 'Universal', 'Number Of 
Pieces', '4', 'Thread Size', NULL UNION ALL 
SELECT 'BBB19-2305', 'Tonneau Cover','Lead Type', NULL, 'Number Of 
Pieces', '4', 'Thread Size', NULL union all 
SELECT 'XXXXXX', 'Air Filter', 'Shape', 'CATCH',    'Number 
Of Pieces', '4', 'Design', NULL Union All 

Ожидаемый выходной

/* 
AAA19-1405 Air Filter Shape Universal Number Of Pieces 2 Design No Logo-- here for part Type Air filter value not present for Shape 
NORFLEX89 Fender Flare Type Universal Color Group NULL Design No Logo-- COLOR GROUP IS NULL FOR Fender Flare 
BIOCONINSULIN Lug Bolt Type Universal Number Of Pieces 4 Thread Size NULL-- Thread size is Null for part type Lug Bolt 
*/ 

- это не должно появиться на выходе, поскольку Weightage больше 600

BBB19-2305 Tonneau Cover Lead Type NULL Number Of Pieces 4 Thread Size NULL 

Большое спасибо

Code я пытался, но не дает результата

SELECT * FROM @DRIVER D 
INNER JOIN 
@application A 
ON A.Part_Type = D.PartType 
WHERE D.AttributeName in 
(
SELECT Description_1 , Description_2 , Description_3 FROM @APPLICATION 

) 

AND A.Description_1_Value IS NULL or A.Description_2_Value is null or  
A.A.Description_3_Value IS NULL 
+1

Хорошо, ** покажите нам свои текущие усилия! ** Как выглядит ваш запрос? Где ты застрял ?? –

+0

@marc_s: Я пробовал с кодом, но получаю ошибку. код включен. –

ответ

1

Вы должны попробовать что-то вроде этого:

SELECT * 
FROM @DRIVER D 
INNER JOIN @application A ON A.Part_Type = D.PartType 
WHERE 
    (D.AttributeName = a.Description_1 AND A.Description_1_Value IS NULL) 
    OR 
    (D.AttributeName = a.Description_2 AND A.Description_2_Value IS NULL) 
    OR 
    (D.AttributeName = a.Description_3 AND A.Description_3_Value IS NULL) 
    AND d.Weightage BETWEEN 100 AND 600   

Update:

Выход я получаю с этим SELECT заявление и данные по выборке, предоставленные ОП:

enter image description here

и я НЕ видеть все строки с «Воздушный фильтр», которые не должны обнаруживаться в соответствии с вашими комментариями .... пожалуйста, объясните более подробно!

+0

Запись, в которой part_number XXXXXX не должен появляться на выходе , потому что тип атрибута атрибута воздушного фильтра не является ни Null, ни пустым. может кто-нибудь помочь мне исправить логику –

+0

может кто-нибудь мне помочь в этом –

+0

@RajeeKasthuri: согласно моему тестированию, эта строка делает ** НЕ ** появляется с моим заявлением select - я действительно ** НЕ ЯВЛЯЮТ ** понять, что вы пытаетесь сделать здесь ...... –

Смежные вопросы