Sql 我需要根据两个字段进行小计字段
我有两个表Sql 我需要根据两个字段进行小计字段,sql,sap,Sql,Sap,我有两个表Qut1和Qut10 Qut1有一个引号行项目列表 Id LineNum Price 1 0 10 1 1 20 1 2 100 Qut10有应该进行小计的行 Id AfterLineNum 1 1 1 2 有人知道我如何创建脚本,给我需要加在一起得到小计的行号吗 ie(1,1.1(即放置在qut1第1行之后但第2行之前),30 (1,2.1100)这是一个将每一行项目映射到其相应小计的查询。它连接两个表,并使用一个具有不存在条件的相关
Qut1
和Qut10
Qut1
有一个引号行项目列表
Id LineNum Price
1 0 10
1 1 20
1 2 100
Qut10
有应该进行小计的行
Id AfterLineNum
1 1
1 2
有人知道我如何创建脚本,给我需要加在一起得到小计的行号吗
ie(1,1.1(即放置在qut1第1行之后但第2行之前),30
(1,2.1100)这是一个将每一行项目映射到其相应小计的查询。它
连接两个表,并使用一个具有不存在
条件的相关子查询,以确保选中相关小计记录
SELECT
t1.LineNum,
t1.Price,
t2.AfterLineNum
FROM
Qut1 t1
INNER JOIN Qut10 t2
ON t2.AfterLineNum >= t1.LineNum
AND NOT EXISTS (
SELECT 1
FROM Qut10
WHERE AfterLineNum >= LineNum AND AfterLineNum < t2.AfterLineNum
)
ORDER BY
t2.AfterLineNum ,
t1.LineNum
如果您希望实际计算小计,只需启用聚合:
这是一个将每一行项目映射到其相应小计的查询。它将两个表连接起来,并使用一个具有不存在
条件的相关子查询,以确保选中相关小计记录
SELECT
t1.LineNum,
t1.Price,
t2.AfterLineNum
FROM
Qut1 t1
INNER JOIN Qut10 t2
ON t2.AfterLineNum >= t1.LineNum
AND NOT EXISTS (
SELECT 1
FROM Qut10
WHERE AfterLineNum >= LineNum AND AfterLineNum < t2.AfterLineNum
)
ORDER BY
t2.AfterLineNum ,
t1.LineNum
如果您希望实际计算小计,只需启用聚合:
SELECT
t2.AfterLineNum,
SUM(t1.Price) subtotal
FROM
Qut1 t1
INNER JOIN Qut10 t2
ON t2.AfterLineNum >= t1.LineNum
AND NOT EXISTS (
SELECT 1
FROM Qut10
WHERE AfterLineNum >= LineNum AND AfterLineNum < t2.AfterLineNum
)
GROUP BY t2.AfterLineNum
ORDER BY t2.AfterLineNum
| AfterLineNum | subtotal |
| ------------ | -------- |
| 1 | 30 |
| 2 | 100 |