2017-08-03 74 views
0

我實際上首先嚐試在excel中使用一堆嵌套的vlookups來執行此操作,並遇到同樣的錯誤,所以我試圖在訪問思路中做這件事,我會解決這個問題,但是我得到完全相同的問題。查詢只拉從一列,而不是所有列的輸出

我想要做的就是通過一個表中的1列和另一個表中的多列中的一個內聯接來連接兩個表(並且我希望輸出是(導致我的問題的那個) )是一個特定的列這裏是小數據樣本,什麼我就先跟着我的查詢

表1:

Search unique 

gloves 5000 
beaker 3000 
tea  1000 
timer  2000 

表2:

Name Field1 Field 2 Field3 .... 
gloves hello goodbye 
Time timer clock 
hi  tea 

當我的內連接獲得:

gloves 5000 

不是得到的:

gloves 5000 
tea 1000 
timer 2000 

因此,只有在第1列,不知道爲什麼參加呢?這裏是我在Access中所寫的查詢:

SELECT DISTINCT Product.Category, Analytics.Unique 
FROM Product INNER JOIN Analytics ON IIF(Analytics.Search = Product.Category 
Is Not Null,Analytics.Search = Product.Category, IIF(Analytics.Search = 
Product.Field4 Is Not Null, Analytics.Search = Product.Field4, 
IIF(Analytics.Search = Product.Field5 Is Not Null, Analytics.Search = 
Product.Field5, IIF(Analytics.Search = Product.Field6 Is Not Null, 
Analytics.Search = Product.Field6, IIF(Analytics.Search = Product.Field7 Is 
Not Null, Analytics.Search = Product.Field7, IIF(Analytics.Search = 
Product.Field8 Is Not Null, Analytics.Search = Product.Field8, 
IIF(Analytics.Search = Product.Field9 Is Not Null, Analytics.Search = 
Product.Field9, IIF(Analytics.Search = Product.Field10 Is Not Null, 
Analytics.Search = Product.Field10)))))))); 
+0

我認爲你需要[UNPIVOT(https://stackoverflow.com/questions/7255423/how-to-simulate-unpivot- in-access-2010)你的Table2,然後加入結果。 – Andre

回答

1

我相信你的表達式不會測試你認爲他們正在測試的內容。局部表達

Analytics.Search = Product.Category Is Not Null 

相當於

(Analytics.Search = Product.Category) Is Not Null 

換句話說,測試一個布爾值是否不爲空。並且布爾值永遠不爲null。

你可能想要更多的東西是這樣的:

... ON Analytics.Search = IIF(Product.Category Is Not Null, Product.Category, 
          IIF(Product.Field4 Is Not Null, Product.Field4, ... 
+0

我剛剛試過你在做什麼,仍然有同樣的問題,我是否缺少一些東西:SELECT DISTINCT Product.Category,Analytics.Unique FROM Product LEFT JOIN Analytics ON Analytics.Search = IIF(Product.Category is Not Null,Product .Category,IIF(Product.Field4 Is Not Null,Product.Field4,IIF(Product.Field5 Is Not Null,Product.Field5))); – mkheifetz

+1

你確定你的字段真的是NULL而不僅僅是空字符串嗎? –

+0

是的我認爲這可能是一個問題,如果他們是空字符串,我該怎麼辦? – mkheifetz

0
select table2.search, table1.unique 
from table1 t 
inner join table2 t2 on t2.name = t.search 
inner join table2 t3 on t3.field1 = t.search 
inner join table2 t4 on t4.field2 = t.search 
inner join table2 t5 on t5.field3 = t.search 
+0

這不會你有4個別名 - t2,t3,t4,t5 - 它們都不是table2,select子句將無法找到table2.search –

相關問題