SQL检查新值是否在一个列中多次出现,在另一列中是否存在

时间:2019-05-21 20:59:49

标签: sql count

我正在尝试编写与银行帐号更改有关的数据查询。客户在其银行帐号上执行的每个操作都在表中的单独一行中。有一个新值列和一个旧值列。如果是银行更新,则新值和旧值都会有一个数字。如果是新设置,则只有新值才有值。一个人可以有多个帐户,这些不同的帐户可以有相同的银行帐户。

我需要解决的两个查询是: 如果是新设置-该人的历史记录中使用的银行帐户 如果是更新-该人员的历史记录中使用的银行帐户。

我需要查看该值是否在新值列中出现多次,以及是否在旧值列中至少出现一次。但我不知道

select c.client_id
from client c,
(SELECT c.client_id, a.new_column_value, a.old_column_value
 FROM  client c,
    bank_number_table a
 where c.client_id=a.client_id) bank_number_history

where c.client_id=bank_number_history.client_id
AND bank_number_history.old_column_value is null
group by c.client_id
HAVING count(bank_number_history.new_column_value)>1

0 个答案:

没有答案