SQL中的计算字段

时间:2015-05-03 23:14:40

标签: sql ms-access

我需要添加一个名为" calc"的字段。计算为

if D.type_id = 1
then calc = calc + D.price
and if D.type_id = 2
then calc = clac - D.price      

我应该在下一个SQL代码中添加什么来做到这一点。

SELECT T.type_name, D.*, I.name_inout
  FROM ((Type T
  INNER JOIN Daily D ON (T.type_id=D.type_id))
  INNER JOIN Incom I ON (I.id_inout=D.id_inout))
  WHERE D.today = DATE()
  Order by daily_id 

我真的不在乎这个领域......我只关心" calc"的最终结果。因为我将最终值传递给报告。

1 个答案:

答案 0 :(得分:1)

如果我正确地阅读了这个问题,你需要一个案例陈述。

SELECT 
    case D.type_id 
        when 1 then calc + D.price
        when 2 then calc - D.price
        else <<whatever your default is>>
    end as CalculatedPrice,
    T.type_name, D.*, I.name_inout
  FROM (
    (
        Type T
        INNER JOIN Daily D ON (T.type_id=D.type_id)
    )
  INNER JOIN Incom I ON (I.id_inout=D.id_inout))
  WHERE D.today = DATE()
  Order by daily_id 

如果您想使用公式计算出价格的和,那么您需要一个包装表,如下所示:

select sum(dtA.CalculatedPrice)
From (
  SELECT 
    case D.type_id 
        when 1 then calc + D.price
        when 2 then calc - D.price
        else <<whatever your default is>>
    end as CalculatedPrice,
    T.type_name, D.*, I.name_inout
  FROM (
    (
        Type T
        INNER JOIN Daily D ON (T.type_id=D.type_id)
    )
  INNER JOIN Incom I ON (I.id_inout=D.id_inout))
  WHERE D.today = DATE()
 ) dtA