2010-05-05 3 views
2

Quelqu'un peut-il s'il vous plaît convertir cette fonction sql d'accès pour moi de travailler dans t-sql 2005.fonction de conversion d'accès SQL à T-SQL 2005

Je suis Tring de prendre le prix de vente moins le coût comme un numéro. Et diviser par le prix de vente d'origine pour produire un deuxième numéro

Merci :)

=IIf([Selling Price]=0,0,([Selling Price]-Nz([Cost]))/[Selling Price]) 

IIRC il devrait être quelque chose le long des lignes de;

ISNULL((ISNULL([Selling Price],0) - ISNULL(Cost,0)),0)/ISNULL([Selling Price],0) AS Margin 

Mais ici, je reçois une division par zéro erreur.

des suggestions?

Répondre

2
SELECT 
    CASE 
     WHEN ISNULL([Selling Price],0) = 0 THEN 0 
     ELSE ([Selling Price] - ISNULL([Cost],0))/[Selling Price] 
    END AS fieldName 
FROM TableName 
+0

accepté comme le plus élégant et facile à comprendre. Merci beaucoup. Je pense que c'était le premier. Salut tout le monde :) – CaRDiaK

+0

ce n'était pas tout à fait le premier;) mais gentil de toute façon. –

+0

QUAND [Prix de vente] EST NULLE PUIS 0 - lit un peu mieux – Andrew

1
CASE 
    WHEN ISNULL([Selling Price], 0) = 0 THEN 0 
    ELSE ([Selling Price] - ISNULL([Cost], 0))/[Selling Price] 
END 
+0

Up voté comme ses très bons, merci :) – CaRDiaK