【发布时间】:2011-06-28 01:14:49
【问题描述】:
我有一个稍微奇怪的问题,我一直在努力解决,我想知道是否有人有任何想法。使它稍微困难的是,它必须在嵌入式产品的受限环境中工作,我只能在加入后更改查询。
我有 2 个表之间的连接以构成完整的行,每行都有一个模块 ID 和一个工作列,其中 0 表示未工作,1 表示工作。每行还有一个配额列,它引用模块 ID,具有相同模块 ID 的所有行具有相同的配额值。
所以例如数据是
ID |Module | Quota | Complete
-------------------------
1 |A | 1 | 0
2 |B | 2 | 1
3 |A | 1 | 0
4 |A | 1 | 0
5 |B | 2 | 1
6 |C | 4 | 0
我想选择模块的完整列的总和小于该模块的配额的记录。
我要去的地方是:
Select table_a.quota, table_a.module, table_b.complete
from table_a inner join table_b on table_a.id = table_b.id
having table_a.quota > (select sum(table_b.complete) from table_a inner join table_b on table_a.id = table_b.id where table_a.module = *module*)
由于我只能在have子句之后影响任何东西,我不知道如何从嵌入语句(module)中的原始查询行中引用模块值,有什么想法吗?
提前感谢任何可以提供帮助的人!
【问题讨论】: