[英]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.