首页 > 解决方案 > 从帐号计算用户公式

问题描述

我有两个表,第一个是 dbo.formula

Id | Poste  | Calculation | Montant
---+--------+-------------+--------
 1 | Achats | 3801%+381%  | .....
 2 | Tva    | 446%-445%   | ....
 3 | Tiers  | 411%+401%   | ....

第二个表是 dbo.value

Compte  | Solde
--------+-------
 380000 | 400.00
 380100 | 500.00
 381100 | 200.00
 381200 | 100.00
4456600 | 100.00
4455400 | 150.00

我需要成为 Montant 字段中第一个表中的结果,例如

800.00
50.00

我尝试了一个请求,但它只更改了 3 开始计算。

标签: sql-server

解决方案


根据您的条件加入表格并汇总:

select f.ID, f.Poste, sum(v.Solde) total
from formula f inner join value v
on charindex('+' + left(v.Compte, 3) + '%', '+' + f.Calculation) > 0
group by f.ID, f.Poste

请参阅演示
结果:

> ID | Poste  | total  
> -: | :----- | :------
>  1 | Achats | 1200.00
>  2 | Tva    | 250.00 

推荐阅读