我有两张桌子就像是;
费用
id taxwork taxworkbuissnes taxmaterials hourrate extrahourrate drivingcost
结算
id小时材料补充buissnes
我想要做的是调用账单的总费用
如果buissnes = 1,则表示这是一个buissnes计费,它可以获得税率的折扣。
如果extrahours = 0,则表示我需要使用小时,如果是1,我需要使用extrahourrate
是否可以做某种if语句,这样我就可以获得正确的总费用和正确的税款。
编辑:添加小提琴
答案 0 :(得分:1)
尝试此计算总小时费用:
SELECT B.id,
Hours
* (CASE WHEN B.extrahours= 1 then C.extrahourrate else C.hourrate END)
* (1 + CASE WHEN buissnes=1 then C.taxworkbuissnes/100 else C.taxwork/100 END)
AS TotalHourCost
FROM bill B JOIN cost C ON B.costid = C.id
答案 1 :(得分:0)
不是100%明确你的要求,但希望这能让你开始
SELECT LaborCost,drivingCost,materials,
Taxes,TaxMaterials,taxes+taxMaterials as TotalTaxes,
laborCost+drivingCost+materials+Taxes+TaxMaterials as TotalCost
FROM
(
SELECT
CASE extraHours
WHEN 1 THEN (hours*extrahourRate)
ELSE (hours*hourRate) END as LaborCost,
drivingCost,
materials,
CASE Buissnes
WHEN 1 THEN TaxWorkBuissnes ELSE Taxwork END as Taxes,
TaxMaterials
FROM bill
JOIN cost ON bill.costid = cost.id
) xx