2016-08-04 5 views
0

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

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 конструктор запросов, я не могу добавить несколько полей, которые имеют разные критерии (for.eg white vs black). Если я попытаюсь, это ничего не дает мне в представлении данных (как будто он пытался найти общий автомобиль, который является как белым, так и черным). Скажите, пожалуйста, sql-запрос, который я могу использовать вместо этого.

EDIT 1

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

EDIT 2

Это то, что я говорил. Как добавить несколько полей здесь с различными критериями for.eg белый: enter image description here

+0

Для вашего примера, чтобы найти автомобиль, который является как белым, так и черным, используйте вместо этого оператор 'In'. Замените '[Car]. [Color] =« Black »' с 'In (« Черный »,« Белый »)'. Это вернет все черные и белые автомобили. –

+0

Вот чего я не хочу. Такого автомобиля нет. Я хочу, чтобы белые автомобили показывались в совершенно другой колонке. Они НЕ ДОЛЖНЫ быть черными. –

ответ

1

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

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

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

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; 
+0

Разве это не граф, а сумма? Что является последним в вашей скобке 0? Также вы могли бы написать заявление sql будет выглядеть? –

+0

Это может быть счет вместо суммы, если это то, что требует ваш анализ. В этом случае я могу использовать sum (iif (color = "black", 1,0)). «0» в конце - это значение, которое используется, если условие iif терпит неудачу. Я предпочитаю указывать 0 вместо того, чтобы по умолчанию было null, но это должно быть необходимо. Если вы установите это в конструкторе запросов, вы увидите код SQL. –

+0

Я добавил образец кода для первых двух столбцов в ответ. –

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

  • Нет связанных вопросов^_^