2015-03-31 63 views
1

不知道如何正確短語問題/描述,所以會通過示例問。訪問查詢不同記錄時,所有行相同

在Access中,如果(2列)select distinct的所有行都相同,我需要運行查詢以返回一條記錄。

所以:

樣式|國旗

123 | Y

123 | N

123 | Y

456 | Y

456 | Y

456 | Y

789 | N

789 | N

789 | N

我只想返回456一次,因爲'456'風格的所有版本都有一個標誌='Y'。 Style'123'不會被返回,因爲它是'Y'和'N'的混合。 Style'789'不應該被返回,因爲所有的實例都是'N'。我只是想返回「所有‘Y’,只有‘Y’的記錄」

回答

0

將查詢分爲3個部分

第1部分,集團的風格和標誌(計數信息行)保存爲查詢1

SELECT Table1.Style, Table1.Flag, Count(Table1.ID) AS CountOfID 
FROM Table1 
GROUP BY Table1.Style, Table1.Flag; 

第2部分 - 通過集團式,並計算國旗記錄數,然後過濾,只顯示與記錄1.保存的標誌計數這是QUERY2

SELECT Query1.Style, Count(Query1.Flag) AS CountOfFlag 
FROM Query1 
GROUP BY Query1.Style 
HAVING (((Count(Query1.Flag))=1)); 

第3部分 - 加入回到t他原創的桌子,並過濾只顯示帶有Y標誌的樣式。 (表1,查詢1,查詢2,查詢3名稱可以替換爲更有意義的問題集合)。

+0

謝謝 - 這有效,但在結果集中給了我更多的數據。我沒有提供更多的樣本數據來說明我的觀點/問題。 如果您將第三種樣式添加到混合中,那麼只有一個標記設置爲「N」,這也會在結果集中返回。我想要過濾這些記錄 - 只顯示所有相同,全部=「Y」。所以: 789 | N 789 | N 789 | N 將顯示在當前狀態,但我需要將其過濾掉。我會在哪裏將條件查找Style =「Y」? – Jon 2015-04-01 13:50:13

+0

完成 - 再次感謝您的幫助! – Jon 2015-04-01 16:12:23

+0

完美 - 再次感謝! – Jon 2015-04-01 17:09:00

相關問題