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      |