簡體   English   中英

將基於內容的行與Access SQL中的其他表行進行比較

[英]Comparing row based on contents to another tables rows in Access SQL

嗨,我正在從事一個項目,由於時間限制,我需要繼續在Access中工作,這可能是我所有問題的根源,但也許還是有希望的。

我有一個數據庫,其中包含一個表ANSWERS,其中填充有用戶“想要”的輸入,每行都有多個列,每個列對應於一個不同問題的答案,詢問他們是否在乎,不需要或需要什么。

EG:答案:

    Bacon  |  Ham   |  Sausage
  ________________________________
1     0        0          2
2     2        1          0
3     0        2          0
4     1        1          1

(0 =無關,1 =想要,2 =需要)

我想將表Answers中的一行與Available表進行比較。

EG:可用:

    Bacon  | Ham    |  Sausage
   ________________________________
1    0        1           0
2    0        0           0
3    1        1           1
4    1        1           0

(0 =不可用,1 =可用)

因此,我想將“答案”與“可用”中的第1行進行比較,因此,因為第1行包含“香腸” = 2,所以我想從“可用”中接收第3行,因為“香腸” = 1。

我很樂意收到整行,或者行ID和匹配的行的“ 1”。

最終,我需要對“答案”中的所有每一行都執行此操作。

任何想法都值得贊賞,我以為使用Intersect可能有效,但是由於在訪問中無效。 我也考慮過加入表格,如有必要,我也可以更改數據變量或格式。

非常感謝

編輯:不在意以前是不要。 為清楚起見進行了更改。

試試看: SELECT tblAnswers.UserID, IIf([tblAnswers].[bacon]>0 And [tblMenus].[Bacon]<>0,[MenuID],Null) AS BaconMenu, IIf([tblAnswers].[Ham]>0 And [tblMenus].[Ham]<>0,[MenuID],Null) AS HamMenu, IIf([tblAnswers].[Sausage]>0 And [tblMenus].[Sausage]<>0,[MenuID],Null) AS SausageMenu FROM tblAnswers, tblMenus WHERE (((IIf([tblAnswers].[bacon]>0 And [tblMenus].[Bacon]<>0,[MenuID],Null)) Is Not Null)) OR (((IIf([tblAnswers].[Ham]>0 And [tblMenus].[Ham]<>0,[MenuID],Null)) Is Not Null)) OR (((IIf([tblAnswers].[Sausage]>0 And [tblMenus].[Sausage]<>0,[MenuID],Null)) Is Not Null));

只需將其粘貼到SQL視圖中的“查詢”窗口中(更改表名和列名以使其與您的名稱相匹配),顯然您將需要根據實際需要對其進行調整,但是它確實可以滿足您對提供的數據的要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM