所以我有两个表:Agent和Conta。
代理可以有很多Conta,但一个Conta只能有一个代理。
我想只显示代理,创建一个html表,在那里你可以看到数据库中存在的所有代理 - 在后台!
我使用下面的代码,但我得到的结果是他参与的每个联系人的一个代理人条目。
WITH LAST_COUNT AS
(SELECT {Conta}.[AgentId], {Conta}.[Data], {Conta}.[Valor],{Conta}.[Submit]
FROM {Conta})
SELECT
{Agent}.[Id], {Agent}.[Nome], {Agent}.[Apelido], LAST_COUNT.[Data],
LAST_COUNT.[Valor], LAST_COUNT.[Submit], {AgentPicture}.[Id],
{AgentPicture}.[Filename], {Agent}.[Telemovel], {Agent}.[UserId]
FROM {Agent}
LEFT JOIN {AgentPicture} ON {AgentPicture}.[Id] = {Agent}.[Id]
INNER JOIN LAST_COUNT ON LAST_COUNT.[AgentId] = {Agent}.[Id]
WHERE {Agent}.[Id] LIKE '%' + @SearchFilter + '%'
OR {Agent}.[Nome] LIKE '%' + @SearchFilter + '%'
OR {Agent}.[Apelido] LIKE '%' + @SearchFilter + '%'
OR @SearchFilter = ''
你能帮帮我吗?谢谢!
答案 0 :(得分:0)
在您的查询中,您将使用LAST_COUNT公用表表达式(CTE)加入Agent表。因此,您可以在结果中获得Contra的所有记录。
只需删除
WITH LAST_COUNT AS
(SELECT {Conta}.[AgentId], {Conta}.[Data], {Conta}.[Valor],{Conta}.[Submit]
FROM {Conta})
从您的查询并删除最后一个JOIN语句:LEFT JOIN LAST_COUNT ON LAST_COUNT.[AgentId] = {Agent}.[Id]
另外,不要忘记删除以下列,这些列是从LAST_COUNT表中检索的:
LAST_COUNT.[Data],
LAST_COUNT.[Valor], LAST_COUNT.[Submit],