Не проще ли просто выбрать все необходимые поля из таблицы на основе значения Field1 и сгруппировать необходимые значения?
Так что-то вроде этого:
SELECT field1, field2,...field195
FROM Table1
WHERE field1 = 'A' or field1 = 'B'
GROUP BY field1, field2, ....field195
Это даст вам все строки, где field1 - это A или B, и есть разница в одном из выбранных полей.
Да, и для оператора group by, а также для части SELECT, действительно используйте ранее упомянутый режим редактирования для запроса. Там вы можете добавить все поля (выбрав их в таблицу и перетащив их вниз), которые необходимы в результате, затем нажмите кнопку «итоги» на ленте, чтобы добавить групповые выражения для всех. Тогда вам нужно только добавить предложение Where, и все готово.
Теперь, когда вопрос более понятен (вы хотите, чтобы запрос выбирал поля вместо записей на основе конкретных требований), мне придется изменить свой ответ на:
Это невозможно.
(пока не доказано обратное);)
Насколько я знаю, запрос используется для выбора записей с использованием, например, предложения where, но никогда не используется для определения того, какие поля должны отображаться в зависимости от определенного критерия.
Одна вещь, которая МОЖЕТ помочь в этом случае, это посмотреть на дизайн базы данных. Правильно ли сделаны эти таблицы?
Предположим, у вас есть 190 из этих полей, которые являются просто деталями основных данных. Вы можете разделить это в другой таблице, так что у вас есть основная таблица и таблица подробностей.
Таблица сведений может выглядеть примерно так:
ID ID_Main Det_desc Det_value
Таким образом, вы можете отфильтровать все значения Detail, которые равны между двумя основными значениями A и B, используя что-то вроде:
Select a.det_desc, a.det_value, b.det_value
(Select Det_desc, det_value
from tblDetails
where id_main = a) as A inner join
(Select Det_desc, det_value
from tblDetails
where id_main = a) as B
on A.det_desc = B.det_desc and A.det_value <> B.det_value
При желании вы можете снова присоединиться к своему основному столу.