Sql-запрос или дизайн запроса Microsoft-Access для представления данных следующим образом

Я пытаюсь создать запрос в Microsoft-Access, который должен представлять данные следующим образом:

Car Make             Black                             White                          Red
              Total  2-door  4-door           Total 2-door  4-door            Total 2-door  4-door  
    ---------------------------------------------------------------------------------------------------


Honda          4        2      2               3      1      2                  4      3      1
Toyota         3        1      2               5      3      2                  6      1      5     
Ford           2        0      2               0      0      0                  1      0      1

В конструкторе запросов Ms-Access я не могу добавить более одного поля, которое имеет разные критерии (например, белый против черного). Если я попытаюсь, это ничего не даст мне в виде таблицы (как если бы он попытался найти общий автомобиль, который был бы белым и черным). Пожалуйста, сообщите мне SQL-запрос, который я могу использовать вместо этого.

РЕДАКТИРОВАТЬ 1

Car Table:
 -CarMake "Short text"
 -Color "Short text"
 -Door "Short text" (2-door or 4-door)

РЕДАКТИРОВАТЬ 2

Это то, о чем я говорил. Как добавить сюда больше полей с разными критериями для.eg white: введите описание изображения здесь

1 ответ

Решение

Два предложения -

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

Во-вторых, вы можете использовать операторы iif в каждом столбце, чтобы точно определить, что вы хотите. Столбец 1 будет суммой (iif(color="black",value,0)). Столбец 2 будет суммой (iif (color = "black" и model="2-door",value,0)). И так далее. Не так просто, как 1-й вариант, но вы получите именно те столбцы, которые вам нужны.

    SELECT Car.CarMake, Sum(IIf([color]="black",1,0)) AS BlackTotal, Sum(IIf([color]="black" And [door]="2-door",1,0)) AS Black_2D
FROM Car
GROUP BY Car.CarMake;
Другие вопросы по тегам