有三个表,我们必须使用一个主键和外键从这些表中选择数据。但是在一个表中,第三个表中有很多数据。我们必须在主键的基础上总结数据。SQL中的SUM函数
BAl = Balance, met = Method, amo = amount, cst_id, cut_id, cut_i = customer_id
现在,我们要总结的方法和总和在同一查询10卡斯特ID的基础上。谁可以帮我这个事?
有三个表,我们必须使用一个主键和外键从这些表中选择数据。但是在一个表中,第三个表中有很多数据。我们必须在主键的基础上总结数据。SQL中的SUM函数
BAl = Balance, met = Method, amo = amount, cst_id, cut_id, cut_i = customer_id
现在,我们要总结的方法和总和在同一查询10卡斯特ID的基础上。谁可以帮我这个事?
如果您提供一些示例数据,编写查询将更容易帮助您。 但是,如果你的MET
字段是数字,你想总结它,那么你需要。
select
t1.cst_n, t2.bal,
sum(t3.met) as met,
sum(t3.amo) as amo
from table1 as t1
inner join table2 as t2 on t2.cut_id = t1.cst_id
inner join table3 as t3 on t3.cut_i = t1.cst_id
group by t1.cst_n, t2.bal
好,如果你想要为所有10个客户数据总结成一个数字,可能你只需要
select
sum(t3.met) as met,
sum(t3.amo) as amo
from table3 as t3
where t3.cut_i in (select t.customerid from @<your variable table with cust. ids> as t)
它只会给一个客户....我需要一个查询 – Ashishsingh
为10个客户相同请给测试数据。此查询按'cst_n'(假设客户编号)分组客户 –
;WITH cte
AS
(
SELECT
*,
ROW_NUMBER() OVER (ORDER BY t1.cst_id) RowNum
FROM Table1 t1
INNER JOIN Table2 t2
ON t1.cst_id = t2.cut_id
INNER JOIN Table3 t3
ON t2.cut_id = t3.customer_id
AND t2.BAL = t3.Balance
AND t2.amo = t3.amount
)
SELECT SUM(*)
FROM cte
WHERE RowNum Between 1 AND 10
-- You can add a GROUP BY here
cte是什么? – Ashishsingh
@Ashishsingh - 它是[Common table expression](http://msdn.microsoft.com/en-us/library/ms190766%28v=sql.105%29.aspx),我使用它,只是为了便于阅读,并且分页让您每次选择10位客户的总和。您可以使用子查询编写它。 –
@MahmoudGamal这就是我之所以有显示表 – Ashishsingh
我必须的scema选择10客户同时 – Ashishsingh