SQL:如何返回包含多行数据的记录

时间:2017-03-06 09:45:28

标签: sql

我遇到了一个问题,我在创建报告时需要显示有两个或更多银行账户的记录(我们的一些员工是国际性的,并且以多种货币获得报酬)。

我创建的报告会收回所有员工及其银行帐户信息。但是,我希望此报告仅 ,以便将拥有2个或更多银行帐户的员工带回来。

以下是一些测试数据:

Test Data

正如您所看到的, Gareth 有多个银行帐户 - 我可以写什么过滤器来恢复他的记录?

5 个答案:

答案 0 :(得分:0)

假设它是mysql,sqlite甚至postgresql(我认为)。它应该是

SELECT * FROM table_name WHERE "First Name" = "Gareth";

但是,如果您正在使用MySQL绑定excel,请确保" Gareth"列出他拥有的每个帐户。它可能看起来更干净,但SQL会解释下面的行#Gareth" as""。这样做也意味着你需要一个新的索引,"名字"不能设置为" UNIQUE"。在列中也有空格是非常难看的SQL语法最好使用camelCase或under_scores。

答案 1 :(得分:0)

假设select A.* from A where not exists ( select id from B where A.id=B.id and A.count <= B.count) 为表Person_Number

的主键
accounts

答案 2 :(得分:0)

如果您使用的是oracle,sqlserver ....

等数据库,请尝试此操作
select b1.* from account_info_table b1 where exists (select 1 from account_info_table b2 where b1.first_name=b2.first_name group by b2.first_name having count(*)>2);

select * from account_info_table where first_name in (select first_name from account_info_table group by first_name having count(*)>2); 

答案 3 :(得分:0)

Use This Code : 
;WITH _CTE AS
(
SELECT *,ROW_NUMBER()OVER(PARTITION BY FirstName Order By FirstName)ROWNO FROM  @Temp
)SELECT FirstName,BankAccountName,BankBranchName,BankAccountNo,SortCode FROM _CTE WHERE ROWNO > 1

答案 4 :(得分:0)

从empleados中选择Empleado 按Emppleado分组 计数(*)> 1