我尝试搜索答案,但是很难提出问题或制定搜索条件来找到答案。这样吧。
我有存储客户信息的表A和存储客户请求的表B。我正在搜寻一个东西,我想在Bob曾帮助的地方寻找客户。这变得棘手,因为我只希望Bob帮助的每个客户返回1行。使用普通联接将返回多行,因为在Bob帮助该客户的请求中有多个。
请参见下面的表格结构。 (还不能添加图像:()
例如,以下查询返回多个行(5,因为Bob出席了5个请求)。
SELECT a.ClientName, b.AttendedBy
FROM TableA A
JOIN TableB b ON a.ClientId = b.ClientId
WHERE b.AttendedBy = 'Peter'
所以我想要的结果如下:
如果我想知道彼得参加了哪些客户,则结果1,如果我想知道安德鲁参加了哪些客户,则结果2。如果我搜索“迈克尔”,则该客户必须返回任何结果。所以基本上没有什么。仅向客户端显示客户端请求中“ attendedBy”所在的客户端(表b)。
我尝试了多种方法,例如WHERE子句中的DISTINCT SELECT,STUFF()函数,TOP 1,LIMIT,但我没有赢。协助将不胜感激。谢谢!
编辑: p.s,表B和B的其他列具有唯一值,因此使用DISTINCT仍将为Peter参加的同一客户返回多行。
答案 0 :(得分:1)
如果我的理解正确,您只需要select distinct
:
SELECT DISTINCT a.ClientName, b.AttendedBy
FROM TableA A JOIN
TableB b
ON a.ClientId = b.ClientId
WHERE b.AttendedBy = 'Peter'
答案 1 :(得分:0)
尝试此查询:
SELECT a.ClientName, b.AttendedBy,concat('Result',rank over(order by a.clientName))
FROM TableA A JOIN
TableB b
ON a.ClientId = b.ClientId
答案 2 :(得分:0)
谢谢大家
但是我设法做到了。我做了以下事情:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddSingleton<IHostedService, LongRunningService>();
...
}