Sql server SQL Server:计算

Sql server SQL Server:计算,sql-server,Sql Server,以下代码有什么问题 我试图根据现有列计算佣金,并将其加载到临时表中,当我运行查询时,它会给出一个错误消息-无效的列名“乘数” 不能定义名称乘数并在同一语句的计算中使用它。只需使用两个CASE语句: SELECT *, Multiplier = Case PRODUCTNAME When 'Voice' then 2.4 When 'Cable' then 4.8 Else 1 END, Case PRODUCTNAME When

以下代码有什么问题

我试图根据现有列计算佣金,并将其加载到临时表中,当我运行查询时,它会给出一个错误消息-无效的列名“乘数”


不能定义名称乘数并在同一语句的计算中使用它。只需使用两个CASE语句:

SELECT *, Multiplier =
    Case PRODUCTNAME 
    When  'Voice' then 2.4
    When  'Cable' then 4.8
    Else 1
    END,
    Case PRODUCTNAME 
    When  'Voice' then 2.4
    When  'Cable' then 4.8
    Else 1
    END * COMP_RATE as Commission
  into #CommissionsFTMJul18
  FROM [DBPO_TRANS].[dbo].[CREDITS]

您需要一个嵌套查询,在其中定义乘数或重新计算尝试使用该值的列的乘数值。我猜case语句的副本没有指定列名。这可能是个错误。试着给一个专栏命名谢谢,它很有效。。。
SELECT *, Multiplier =
    Case PRODUCTNAME 
    When  'Voice' then 2.4
    When  'Cable' then 4.8
    Else 1
    END,
    Case PRODUCTNAME 
    When  'Voice' then 2.4
    When  'Cable' then 4.8
    Else 1
    END * COMP_RATE as Commission
  into #CommissionsFTMJul18
  FROM [DBPO_TRANS].[dbo].[CREDITS]