Вернуть строки, в которых поля различаются на основе значений в предыдущих полях - PullRequest
0 голосов
/ 28 октября 2011

Я пытаюсь создать запрос, который будет возвращать все строки, где есть разница в любом поле после второго столбца, на основе динамической комбинации значений предшествующего поля.

Сценарий будет похож на это:
Я собираюсь задать кому-то ряд вопросов о продукте, который они хотят купить. После определения типа товара, который они хотят купить, я бы задала другой вопрос. В зависимости от ответа, который они дают, я могу задать другой вопрос, но этот вопрос может отличаться в зависимости от первого ответа.

Вот пример набора данных:

Item|Question1|Answer1|Question2|Answer2|Question3|Answer3
123|Front Door|Material|Wood|Type of Wood|Oak|Color|Red
456|Front Door|Material|Wood|Type of Wood|Oak|Color|Tan
789|Front Door|Material|Wood|Type of Wood|Oak|NULL|NULL
321|Front Door|Material|Steel|Type of Steel|T304|NULL|NULL
654|Front Door|Material|Steel|NULL|NULL|NULL|NULL
987|Closet Door|Material|Wood|Type of Wood|Oak|Color|Red
741|Closet Door|Material|Wood|Type of Wood|Oak|Color|Tan
852|Closet Door|Material|Steel|Type of Steel|T304|NULL|NULL
963|Closet Door|Material|Steel|Type of Steel|T304|NULL|NULL

Я хочу вернуть все строки, в которых есть расхождение в порядке вопросов, основанных на предыдущем ответе, поэтому вернутся следующие строки:

123|Front Door|Material|Wood|Type of Wood|Oak|Color|Red
456|Front Door|Material|Wood|Type of Wood|Oak|Color|Tan
789|Front Door|Material|Wood|Type of Wood|Oak|NULL|NULL

Это потому, что я либо забыл спросить «Цвет» для 789, либо мне не нужно спрашивать «Цвет» для 123 и 456

321|Front Door|Material|Steel|Type of Steel|T304|NULL|NULL
654|Front Door|Material|Steel|NULL|NULL|NULL|NULL

Это потому, что я забыл спросить «Тип стали» для 654, или мне не нужно спрашивать его для 321.

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

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...