请协助我创建 SQL 脚本
Please assist me with creating SQL Script
我正在尝试加入这两个 table 并从 table 1 中获取 ID #2 的总和并将其与 table 2
加入
TABLE # 1
customer id amount
Nick 1 150
Jack 2 100
Jack 2 130
TABLE # 2
product Typ Date id
Apple Fruit 2/19/15 1
Banana Fruit 2/19/15 2
我希望看到的结果是为 id # 2 提取了金额。
customer id amount product Typ Date id
Nick 1 150 Apple Fruit 2/19/15 1
Jack 2 230 Banana Fruit 2/19/15 2
希望它有意义,
首先根据 customer
.
找到 amount
的 Sum
然后使用 ID
将结果加入 table2
以获得结果。试试这个。
select * from table2 A
(
select sum(amount) amount,customer, id
from table1
group by customer, id
) B on A.Id =B.Id
我们可以使用 ROW_NUMBER() 和 PARTITION BY[=16] 而不是 Group by =].
DECLARE @TABLE1 TABLE(Customer varchar(100), Id int, Amount int)
INSERT INTO @TABLE1
SELECT 'Nick', 1, 150 UNION
SELECT 'Jack', 2, 100 UNION
SELECT 'Jack', 2, 130
DECLARE @TABLE2 TABLE(Product varchar(100), Typ Varchar(20), [Date] date, Id int)
INSERT INTO @TABLE2
SELECT 'Apple', 'Fruit', '2/19/15', 1 UNION
SELECT 'Banana', 'Fruit', '2/19/15', 2
SELECT * FROM
(
SELECT Customer, id, SUM(Amount) OVER (PARTITION BY Id) Amount,
ROW_NUMBER() OVER (PARTITION BY Id ORDER BY Id) RN
FROM @TABLE1
)
T1
JOIN @TABLE2 T2 ON T1.Id = T2.Id
WHERE RN = 1
我正在尝试加入这两个 table 并从 table 1 中获取 ID #2 的总和并将其与 table 2
加入TABLE # 1
customer id amount
Nick 1 150
Jack 2 100
Jack 2 130
TABLE # 2
product Typ Date id
Apple Fruit 2/19/15 1
Banana Fruit 2/19/15 2
我希望看到的结果是为 id # 2 提取了金额。
customer id amount product Typ Date id
Nick 1 150 Apple Fruit 2/19/15 1
Jack 2 230 Banana Fruit 2/19/15 2
希望它有意义,
首先根据 customer
.
amount
的 Sum
然后使用 ID
将结果加入 table2
以获得结果。试试这个。
select * from table2 A
(
select sum(amount) amount,customer, id
from table1
group by customer, id
) B on A.Id =B.Id
我们可以使用 ROW_NUMBER() 和 PARTITION BY[=16] 而不是 Group by =].
DECLARE @TABLE1 TABLE(Customer varchar(100), Id int, Amount int)
INSERT INTO @TABLE1
SELECT 'Nick', 1, 150 UNION
SELECT 'Jack', 2, 100 UNION
SELECT 'Jack', 2, 130
DECLARE @TABLE2 TABLE(Product varchar(100), Typ Varchar(20), [Date] date, Id int)
INSERT INTO @TABLE2
SELECT 'Apple', 'Fruit', '2/19/15', 1 UNION
SELECT 'Banana', 'Fruit', '2/19/15', 2
SELECT * FROM
(
SELECT Customer, id, SUM(Amount) OVER (PARTITION BY Id) Amount,
ROW_NUMBER() OVER (PARTITION BY Id ORDER BY Id) RN
FROM @TABLE1
)
T1
JOIN @TABLE2 T2 ON T1.Id = T2.Id
WHERE RN = 1