2015-06-29 38 views
1

我有两个表:这个SQLite select语句有什么问题?

表1是:

ID fname lname 
--------------------- 
11  p1  p2 
22  a1  a2 

表2是:

ID fk_id field1 field2 
------------------------------ 
1  11  2  3 
2  22  5  4

和我在sqlite的这一说法:

select * from Table1 
where Table1.id=(select fk_id 
       from Table2 
       where (select sum([field1]-[field2]) 
         from Table2 GROUP BY [fk_id]) > 0)

我期望这查询返回Table1的所有行,但它只返回一行!

为什么?

我不明白这个!

+1

'其中Table1.id =(..)'是一个奇异的匹配使用JOIN,而不是一个子查询(或如果一个人真的喜欢子查询,那么就是'IN') – user2864740

+0

问题是这个语句没有意义,你真的想要什么? –

+0

tnx很多!:) user2864740;)我使用IN,它工作的很好! –

回答

0

如果有结果会有所帮助。

所以我想,因为表11 总和(2 - 3)= -1 其失败的

select fk_id 
       from Table2 
       where (select sum([field1]-[field2]) 
         from Table2 GROUP BY [fk_id]) > 0 

所以,你只得到了22你的结果。

你可能需要一个ABS(SUM([字段1] - [字段2]),然后

+0

请格式化您的答案。 –