[英]How do I select column values to be corresponding to each other?
I have a resultset where for the same ID I have three rows because there are different FirstName, LastName and BranchName. 我有一个结果集,其中对于相同的ID我有三行,因为有不同的FirstName,LastName和BranchName。
For example: 例如:
ID FirstName LastName BranchName Balance
101 Debra Hays Dayton 200
101 Daniel Brinkman Lynden 250
101 Daniel Brinkman HZBK 300
I want one row for this ID showing any BranchName but it should show corresponding FirstName and LastName for that BranchName and (sum of Balance) not random combination ie it can be Debra Hays with Dayton as branchname not Lynden as BranchName. 我想要此ID的一行显示任何BranchName,但应该为该BranchName显示相应的FirstName和LastName,并且(余额之和)不是随机组合,即它可以是Debra Hays,Dayton为Branchname,而不是Lynden作为BranchName。
Basically the FirstName, LastName and BranchName should be corresponding to each other not any first or lastname combination. 基本上,FirstName,LastName和BranchName应该彼此对应,而不是任何姓氏或姓氏组合。 I was wondering how can we achieve that?
我想知道我们该如何实现?
Expected output: 预期产量:
ID FirstName LastName BranchName Sum(balance)
101 Debra Hays Dayton 750
Or
要么
ID FirstName LastName BranchName Sum(balance)
101 Daniel Brinkman Lynden 750
DECLARE @data TABLE(ID INT,FirstName VARCHAR(128),LastName VARCHAR(128),BranchName VARCHAR(128),Balance INT);
INSERT INTO @data(ID,FirstName,LastName,BranchName,Balance)VALUES
(101,'Debra','Hays','Dayton',200),
(101,'Daniel','Brinkman','Lynden',250),
(101,'Daniel','Brinkman','HZBK',300);
;WITH cte AS (
SELECT
ID,
FirstName,
LastName,
BranchName,
rn=ROW_NUMBER() OVER(PARTITION BY ID ORDER BY FirstName,LastName,BranchName),
Balance=SUM(Balance) OVER (PARTITION BY ID)
FROM
@data
)
SELECT
ID,
FirstName,
LastName,
BranchName,
Balance
FROM
cte
WHERE
rn=1;
Output: 输出:
+-----+-----------+----------+------------+---------+
| ID | FirstName | LastName | BranchName | Balance |
+-----+-----------+----------+------------+---------+
| 101 | Daniel | Brinkman | HZBK | 750 |
+-----+-----------+----------+------------+---------+
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.