【发布时间】:2016-11-22 10:35:30
【问题描述】:
我有两张桌子:
主表
...
startSubNr
endSubNr
...
步骤
...
nrFrom
nrTo
value
...
MasterTable 包含例如:
startSubNr: 2
endSubNr: 16
步骤包含例如:
nrFrom: 2
nrTo: 19
value: 20
nrFrom: 1
nrTo: 2
value: 10
nrFrom: 19
nrTo: 5
value: 100
nrFrom: 5
nrTo: 16
value: 200
nrFrom: 4
nrTo: 5
value: 50
我需要的是一个 sql 查询(它应该在 SQL-Server 和 sqlite 上工作)来计算从 startnr 到 endnr 的总和,其中步骤数可能会有所不同。步骤(从到到)是独一无二的。
在这个例子中,它必须总结 20 (2-19), 100 (19-5 em>) 和 200 (5-16),而忽略 1-2 和 4-5 的值。
有没有办法在 sql 中做到这一点而不必使用多个查询?
【问题讨论】:
-
为什么忽略其他两个值..?
-
因为在 Mastertable 中我有 startSubNr= 2 和 endSubNr= 16。在 Steps 表中,我搜索以 nrFrom 2 开头的步骤(nrTo 为 19,值为 20)。然后我搜索 nrFrom 19 的步骤(nrTo 为 5,值为 100),依此类推。我这样做直到达到 endNr 16 的 Step 并总结所有步骤的值。
标签: sql sql-server sqlite