0

我有一个运行 MS-SQL 2008 的 Windows 服务器。

我有一个客户表,我需要选择所有活跃、暂停或暂停的客户的 ID。

获取 Y= 当前活跃客户 H= 暂停 S= 暂停的所有客户

select id from customer where active = 'Y';

上述语句适用于选择受影响客户的 ID。

我需要使用这些结果来循环执行以下命令,以找出所有受影响客户的费率。

获取客户的所有费率

select rgid from custrate where custid = [loop though changing this id with results from first statement];

customer 表中的 id 与 custrate 表中的 custid 一致。

所以最后我需要一份所有受影响的客户 ID 的列表以及他们拥有的 rgid(费率组)。

4

1 回答 1

3

SQL 通常与循环无关,相反,您应该考虑连接。

select customer.id, custrate.rgid, customer.active
from customer
inner join custrate
  on customer.id = custrate.custid
where active in ('Y', 'H', 'S")
order by customer.active, customer.id

将是一个思考的起点。然而,这只是一个疯狂的猜测,因为没有指定模式,也没有指定表之间的关系。

于 2013-04-25T17:43:53.610 回答