选择价格取决于其他表格

时间:2013-12-20 11:19:06

标签: sql

我有两张桌子就像是;

费用

id taxwork taxworkbuissnes taxmaterials hourrate extrahourrate drivingcost

结算

id小时材料补充buissnes

我想要做的是调用账单的总费用

如果buissnes = 1,则表示这是一个buissnes计费,它可以获得税率的折扣。

如果extrahours = 0,则表示我需要使用小时,如果是1,我需要使用extrahourrate

是否可以做某种if语句,这样我就可以获得正确的总费用和正确的税款。

编辑:添加小提琴

http://www.sqlfiddle.com/#!2/dd8d9/1

2 个答案:

答案 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