如何划分两列?

时间:2010-10-22 12:32:33

标签: sql

我尝试从连接表中划分两列,但结果(列relative_duration的值)始终为0.查询如下:

    SELECT t1.[user_1]
      ,t1.[user_2]
      ,t1.[total_duration]
      ,(t1.total_duration/t2.[total_events_duration]) AS relative_duration
  FROM [CDRs].[dbo].[aggregate_monthly_events] AS t1 INNER JOIN [CDRs].[dbo].[user_events_monthly_stats] AS t2 ON t1.[user_1] = t2.[user_1]

有没有人知道上面的查询中可能出现什么问题,以及如何修复它以便将表t1中的total_duration列与表t2中的total_events_duration列分开?

BTW我试图用减法代替除法(“/”用“ - ”代替),在这种情况下,列relative_duration不是0.

1 个答案:

答案 0 :(得分:31)

据推测,这些列是整数列 - 这是因为计算结果将是相同类型的原因。

e.g。如果你这样做:

SELECT 1 / 2

你会得到0,这显然不是真正的答案。 因此,将值转换为例如十进制,而是根据该数据类型进行计算。

e.g。

SELECT CAST(1 AS DECIMAL) / 2

给出0.500000