我对SQL还是比较新的。这是我尝试运行的查询的简化版本。此查询假设查找具有3个以上案例的客户,并显示前1个案例或所有案例,但除了所有案例编号外,还显示每行中每个客户案件的总数。T-SQL在集合/组查询中选择TOP 1
TOP 1子查询方法不起作用,但有另一种方法来获得我需要的结果吗?希望这是有道理的。
下面的代码:
SELECT t1.StoreID, t1.CustomerID, t2.LastName, t2.FirstName
,COUNT(t1.CaseNo) AS CasesCount
,(SELECT TOP 1 t1.CaseNo)
FROM MainDatabase t1
INNER JOIN CustomerDatabase t2
ON t1.StoreID = t2.StoreID
WHERE t1.SubmittedDate >= '01/01/2017' AND t1.SubmittedDate <= '05/31/2017'
GROUP BY t1.StoreID, t1.CustomerID, t2.LastName, t2.FirstName
HAVING COUNT (t1.CaseNo) >= 3
ORDER BY t1.StoreID, t1.PatronID
我想它是这个样子,无论是一排只有最近的情况和细节或几行显示,除了存储中每个案件的所有细节ID,客户ID,姓氏,名字和案例数量。
您是否有过结果应该如何的示例? –
我已更新我的原始问题以包含我希望返回的列。 – Jenn
什么决定选择哪种情况?你能提供样本输入和输出吗? – Eric