2010-10-22 12 views
4

J'ai essayé de diviser deux colonnes de toujours 0. La requête est la suivante tables, mais le résultat rejoint (valeur de relative_duration colonne):Comment diviser deux colonnes?

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] 

Est-ce que quelqu'un sait ce qui pourrait se tromper dans la requête ci-dessus et comment réparer pour diviser la colonne total_duration de la table t1 avec la colonne total_events_duration de la table t2?

BTW j'ai essayé de remplacer la division par soustraction («/» avec « - ») et dans ce cas, la relative_duration colonne n'est pas 0.

Répondre

22

On peut supposer que ces colonnes sont des colonnes entières - qui sera la raison pour que le résultat du calcul sera du même type.

par exemple. si vous faites ceci:

SELECT 1/2 

vous obtiendrez 0, ce qui n'est évidemment pas la vraie réponse. Donc, convertissez les valeurs par ex. décimal et faites le calcul basé sur ce type de données à la place.

par exemple.

SELECT CAST(1 AS DECIMAL)/2 

donne 0,500000

Questions connexes