2016-11-15 91 views
2

我在Access中有一個表,其中有多個記錄具有相同的ID,它們相互對應。SQL查詢的ID分組和其他其他字段有一定的值

我想查找某些具有特定日期值的記錄。但是,我希望獲得與該ID相對應的所有信息(即具有相同ID的所有其他記錄)。我已經試過這樣的事情:

SELECT * 
FROM myTable 
WHERE LEFT(Field1,7) = '2016-11' IN (SELECT ID 
             FROM myTable 
             GROUP BY ID 
             HAVING COUNT(*)>1) 

SELECT * 
FROM myTable 
WHERE ID = (SELECT * FROM myTable WHERE LEFT(Field1,7) = '2016-11' 

這些都不是給我適當的輸出。我想我可能需要某種類型的For循環,但是沒有太多經驗用SQL來完成。這樣我可以遍歷所有與該日期部分一起返回的ID。有什麼建議麼?我會將表格格式放在帖子中,但由於某些原因,表格格式不適用於我。挫折是真實的!

哈哈感謝提前花時間來讀我的問題。非常感激。

編輯

這是一個視覺的我的表是什麼樣子:

ExampleTable

我想選擇所有十一月期間發生的記錄,同時也獲得相應的信息(即與11月份記錄具有相同ID號碼的記錄)。

+0

爲什麼子查詢:'SELECT * FROM myTable的WHERE LEFT(Field1,7)='2016-11''? – Parfait

+0

我試圖選擇當月發生的所有記錄。但是,該列被格式化爲文本,因爲每個值不一定是日期。 最後,我想用本月的日期篩選出所有記錄,然後檢索所有其他具有與該日期相同的ID的記錄。 –

回答

1

考慮加入WHERE條件在子查詢:

SELECT * 
FROM myTable 
WHERE ID IN (SELECT ID FROM myTable 
      WHERE LEFT(Field1, 7) = '2016-11'); 

或者避免子查詢,嘗試一個INNER JOIN在過濾自通過ID加入:

SELECT myTable.* 
FROM myTable 
INNER JOIN 
    (SELECT ID FROM myTable 
    WHERE LEFT(Field1, 7) = '2016-11') sub 
ON sub.ID = myTable.ID 
+0

不幸的是,這仍然只是給我記錄日期的記錄:/我添加了我的表的排序格式化的屏幕截圖。也許這會有所幫助。 –

+0

請參閱編輯。此外,你有一個[實體/屬性值模型](http://stackoverflow.com/questions/870808/entity-attribute-value-database-vs-strict-relational-model-ecommerce-question)這是不是最好的爲關係數據庫。 – Parfait

+0

這是來自xml文件的數據,並按照您所看到的導入。我不改變它的原因僅僅是因爲我不確定每個記錄的字段數是否會發生變化。在我不知情的情況下可以添加列。如果我們能夠擺動桌子並保持動態的方式,我很樂意瞭解它。上面的兩種方法也適用於我,所以謝謝! –

相關問題