帐户上存在多个违约字段

时间:2017-09-28 20:04:52

标签: sql

我有很多帐户,每个帐户都有多个服务代码,每个服务都有一个与之关联的位置。我想提取帐号并解决服务执行的地址。在我的数据中,帐户上应该只有一个位置,但由于人为错误,有些帐户在每个服务上具有不同的位置。到目前为止我已经有了这个:

SELECT s.acctno, l.locationaddr 
FROM service s LEFT JOIN location l on s.locationcode = l.locationcode

这为我提供了多个地点的帐户的重复帐户,我不能重复。如何覆盖locationaddr以仅提取帐户中的某个位置?我试过了

SELECT s.acctno, (SELECT TOP 1 l.locationaddr FROM location l) 
FROM service s LEFT JOIN location l on s.locationcode = l.locationcode

但是这给了我相同的位置地址,无论它是否曾在该帐户上。我还能尝试什么?

2 个答案:

答案 0 :(得分:0)

我认为你想要一个相关的子查询:

SELECT s.acctno,
       (SELECT TOP 1 l.locationaddr
        FROM location l
        WHERE s.locationcode = l.locationcode
       ) 
FROM service s; 

答案 1 :(得分:0)

经过几个小时尝试不同的事情后,我最终解决了我的问题。有用的是

use UserAwareTrait;
/**
 * @var EntrantInterface
 * @ORM\ManyToOne(targetEntity="ReusableBundle\Model\EntrantInterface"inversedBy="entries")
 */
protected $user;