用于ID分组的SQL查询和WHERE其他字段具有一定的值

时间:2016-11-15 17:57:32

标签: sql ms-access

我在Access中有一个表,其中有多个具有相同ID的记录,它们彼此对应。

我想查找具有特定日期值的某些记录。但是,我想要所有相应的信息与该ID(即具有相同ID的所有其他记录)。我尝试过这样的事情:

HTTP ERROR: 503

Problem accessing /. Reason:

Service Unavailable

Powered by Jetty:// 

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

这些都没有给我正确的输出。我想我可能需要某种类型的For循环,但是在使用SQL时没有多少经验。这样我就可以循环遍历那个日期部分返回的所有ID。有什么建议?我会把表格格式放在帖子中,但由于某种原因,表格格式不适合我。沮丧是真的!

哈哈,提前感谢您抽出时间来阅读我的问题。非常感谢。

修改

这是我的表格的视觉效果:

ExampleTable

我想选择11月份发生的所有记录,但也要获取相应的信息(即与11月记录具有相同ID号的记录)。

1 个答案:

答案 0 :(得分:1)

考虑在子查询中添加WHERE条件:

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

要避免使用子查询,请尝试INNER JOINID过滤后的自联接进行SELECT myTable.* FROM myTable INNER JOIN (SELECT ID FROM myTable WHERE LEFT(Field1, 7) = '2016-11') sub ON sub.ID = myTable.ID

this