Я борюсь с оператором SQL, который я пытаюсь написать в MS Access, и был бы признателен за любую помощь.SQL на основе сложных критериев
У меня есть таблица:
***************************
* attr1 * attr2 * attr3 *
***************************
* * A * 1 *
* * B * 2 *
* * B * 3 *
* * C * 4 *
* B * * 1 *
* D * * 1 *
* A * * 2 *
***************************
Мне нужно привести, как это:
***************************
* attr1 * attr2 * attr3 *
***************************
* B * * 1 *
* D * * 1 *
* A * * 2 *
* * B * 3 *
* * C * 4 *
***************************
Так что, мне нужно в моем результате все строки, где attr1 не является нулевым, а все остальные строки, в которых attr3 имеет разные значения от значений в строках, где attr1 не является нулевым.
Я могу сделать это в Access, чтобы сделать один запрос, когда я выбираю все строки, где attr1 не является нулевым, чем один «найти непревзойденный» запрос, где я выбираю все строки со значениями в attr3, которые не включены в первый запрос, а затем объединить эти два запроса ... но мне нужен более прямой подход (по возможности, один SQL-оператор).
спасибо!
большое спасибо. Это оно! – Mario
Без проблем, я мог бы помочь :) –
Из любопытства вы видите какую-либо разницу в производительности с помощью «НЕ СУЩЕСТВУЕТ»? ... 'SELECT y1.attr1, y1.attr2, y1.attr3 FROM YourTable AS y1 WHERE y1.attr1 НЕ НУЖНО ИЛИ НЕ СУЩЕСТВУЕТ (ВЫБРАТЬ 1 ОТ ТИПОВОГО AS y2 WHERE y2.attr3 = y1.attr3 И y2.attr1 IS NOT Null) ' – HansUp