Sql 如何计算
我有一张这样的桌子:Sql 如何计算,sql,Sql,我有一张这样的桌子: Item Qty Price A Price B abc 5 36.00 0 qwe 8 0 48.00 zxc 6 12.00 0 poi 4 10.00 0 lkj 9 12.00 0
Item Qty Price A Price B
abc 5 36.00 0
qwe 8 0 48.00
zxc 6 12.00 0
poi 4 10.00 0
lkj 9 12.00 0
mnb 3 0 14.00
vfr 7 0 6.00
如何使用SQL ie对值求和。如果价格A为零,它将选择价格B。预期结果如下:-
Item Value
abc 180.00
qwe 384.00
zxc 72.00
poi 40.00
lkj 36.00
mnb 42.00
vfr 42.00
为什么不做类似的事情呢
SELECT SUM(Price A) FROM table; SELECT SUM(Price B) FROM table WHERE Price A = 0;
然后将结果加在一起…从上面的示例中,您可以选择priceA+priceB,因为其中一个始终为零,否则。。。我不太确定这是否可以在纯SQL中实现…如果A和B可以为非零,则使用以下公式,并且仅在出现这种情况时使用价格A:
SELECT Item, CASE WHEN `Price A` != 0 THEN `Price A` * Qty
ELSE `Price B` * Qty
END AS Value
FROM table;
假设两者都不能为null:
从tableName中选择项目,数量*如果(PriceA!=0,PriceA,PriceB)作为值;
请编辑并使用“代码格式”功能/按钮,使示例数据可读。lkj 9 x 12=108而不是36?那么如果两个值都不为零会发生什么?如果价格A和B都不为零会发生什么?聪明:-)值得明确说明基本假设,即其中一个价格(应该)始终为0。正确,在示例(需求)中,它们始终为0,将是A或B,但不是A&B,即A&B为非零或A&B有值。当A&B都有值时会发生什么?+1这总是给出预期结果(即使两个价格都非零)。
SELECT Item, CASE WHEN `Price A` != 0 THEN `Price A` * Qty
ELSE `Price B` * Qty
END AS Value
FROM table;