SQL colonne calculée avec l'instruction du cas et de la table de jointure

Ok, j'ai fait quelques web creuser et n'arrive pas à trouver comment faire de cette situation de travail, ou même si elle est possible.

Je suis à l'aide de SQL Server 2008 et ont une colonne calculée, où je suis à essayer de comprendre certaines valeurs concernant les fluctuations des taux de change.

Bien qu'une seule table peut être plus facile dans le long terme, je voudrais utiliser la bonne solution qui implique deux tables différentes.

table t1 maisons d'un journal de transactions. tableau t2 maisons de l'information de base pour une devise donnée. Les deux tables peuvent être jointes à l'aide de la currencyCode attribut.

La surface collante vient avec des espèces dépendantes des calculs. Actuellement, les calculs ne diffèrent que pour CR1 CR2 CR3 ou CR4 mais dans l'avenir en devises sont ajoutés, le potentiel existe pour les nouvelles monnaies diffèrent. Donc, idéalement, une nouvelle ligne sera ajoutée à t2 et un drapeau d'un bit (flagCurrencyCalc) set qui spécifie l'autre calcul être utilisée ou non.

De sorte que la formule actuelle ressemble à quelque chose comme ceci:

(case when [currencyCode]='CR1' OR [currencyCode]='CR2' OR [currencyCode]='CR3' OR [currencyCode]='CR4' then (formula1) else (formula2) end)

Comme vous pouvez le voir, je dois aller manuellement dans et de modifier le formual par l'ajout d'un autre OU de la déclaration avec la nouvelle currencyCode.

Serait-il possible de faire quelque chose le long de la ligne de:

(case when t2.flagCurrencyCalc=True pour une devise donnée code enregistrement a trouvé en t1 then (formula1) else (formula2) end)

???

OriginalL'auteur zentechinc | 2013-06-21