2016-08-04 40 views
0

我試圖設計在微軟的訪問查詢,應以下列方式顯示數據:SQL查詢或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-訪問查詢設計師,我不能添加多個領域有不同的標準(for.eg白色vs黑色)。如果我嘗試,它在數據表視圖中沒有提供任何內容(就好像它試圖找到一輛普通的白色和黑色車)。請告訴我一個可以用來代替的sql查詢。

編輯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」運算符。用'In(「Black」,「White」)'替換'[Car]。[Color] =「Black」'。這將返回所有黑色和白色的汽車。 –

+0

這就是我不想要的。沒有那樣的汽車。我希望白色汽車能夠顯示在完全不同的列中。他們不能是黑色的。 –

回答

1

兩個建議 -

首先,你可以拼接色&風格融入到一個變量和使用,在交叉表查詢 - 但你贏了不會得到顏色的小計。

其次,您可以在每列中使用iif語句來準確定義您想要的內容。列1將是sum(iif(color =「black」,value,0))。列2將是sum(iif(color =「black」和model =「2-door」,value,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

我向答案添加了前兩列的示例代碼。 –