Question

Je veux pouvoir stocker une valeur décimale dans une colonne et dans l'autre colonne pour stocker un entier représentant l'option (expliquera):

  1. doit être la base -%
  2. devrait être base -absolute
  3. doit être la base +%
  4. devrait être base + absolu
  5. 1 & amp; 2 est un rabais
  6. 3 & amp; 4 est un supplément
  7. 1 & amp; 3 réduit / augmente le montant en pourcentage (c.-à-d. Montant * montant / valeur).
  8. 2 & amp; 4 réduit / augmente le montant de manière absolue (c.-à-d. Montant +/- valeur).

Signification J'ai un tableau de 3 colonnes:

  • Prix de base
  • Prix supplémentaire décimal
  • Option tinyint

et

  • ComputedColumn (décimal?)

Supposons que nous avons une ligne indiquant que son prix de base est 100 et que son prix supplémentaire est 0.20

Selon l'option choisie, la colonne calculée doit générer la valeur suivante:

  • 80
  • 99.80
  • 120
  • 100.20

Suis-je clair? Est-ce que je peux y arriver?

Était-ce utile?

La solution

Je garderais aussi la colonne calculée en argent.

En interne, cette conversion sera décimale en raison de type de données précédé

CREATE TABLE (
...,
ComputedColumn AS CAST (
    CASE Option
        WHEN 1 THEN BasePrice * (1 - AdditionalPrice)
        WHEN 2 THEN BasePrice - AdditionalPrice
        WHEN 3 THEN BasePrice * (1 + AdditionalPrice)
        WHEN 4 THEN BasePrice + AdditionalPrice
    END AS money)
)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top