我有一个配置单元表,其中的数据如下所示-
每个客户都有相应的账户,目标是建立内部客户对。对是基于帐户是否有相同的出生年份或他们的名字的前3个字符是相同的。萨姆和塞缪尔。
输出结果如下-
理想情况下,不应创建aa、xx等相同的帐户对。另外,一对ac和ca都是相同的,因此只需要一个条目。姓名和出生年份密钥可以组成一对,但这里也只需要一个条目(可以是任何人)。
我应该如何处理这个问题。检验试验数据-
create table customer_account(
customer INT NOT NULL,
accounts VARCHAR(100) NOT NULL,
name VARCHAR(40) NOT NULL,
yob DATE,
);
INSERT INTO
customer_account(customer,accounts,name,yob)
VALUES
(1,"A","John",2001),
(1,"X","Tom",1996),
(1,"C","Harry",2001),
(2,"D","Sam",1994),
(2,"F","Samuel",1995),
(3,"Z","Jake",)1994,
(3,"G","Drake",1998),
(3,"H","Arnold",1993),
(3,"K","Yang",1990)
;
2条答案
按热度按时间k7fdbhmy1#
您应该能够在配置单元语言中为联接使用子字符串。逻辑应该是合理的,虽然你可能需要调整它为您的需要一点。
你要做的是一元(或自)连接。下面是一个可以传递的查询类型的示例。实际上,您是在加入一个or条件,并用case语句测试该条件以获得“pair\u key”。我使用了一个内部连接,假设您只需要匹配发生的示例。
如果没有测试数据或更多关于你走了多远的细节,这只是一个开始。
如果客户编号需要相同,只需调整为:
6tr1vspr2#
这就是你所描述的:
没有必要去拿
customer
两次。如果需要“相同”对,则将最后一个条件更改为>=
.