Bonjour,

Dans SQL Server Management Studio, je voudrais pouvoir créer une vue qui me permette d'obtenir tous les enregistrements d'une table en double.
C'est à dire que tous les enregistrements se voient deux fois mais la deuxième fois, certaines colonnes sont inversées (CompteCR, compteDB) et les colonnes contenant des montants sont multipliées par -1

J'ai commencé par créer une vue qui m'inverse les colonnes et fait la multiplication par -1 : voici

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
SELECT        [N°], NoDeb, NoDebFact, Nom, Libelle, NoFacture, DateFacture, DateEcheance, MontantTTC * - 1 AS MontTTC, CdeTVA, TauxTVA, MontantTVA * - 1 AS MonHT, MontantHT, DatePaiement, CompteCR, CompteDB, 
                         TypeTR, SocieteFS, CompteSteGr, CdeTVASteGr, NoCreancier, TexteCodif1, TexteCodif2
FROM            dbo.Transactions
Ensuite, j'ai crée une deuxième vue qui utilise la table de base et la première vue pour obtenir le résultat que j'aimerais. Voici le code de la deuxième vue :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
SELECT        *
FROM            dbo.Transactions
where            dbo.transactions.datefacture >= '2017-01-01' 
union
select         *
from             dbo.vue_transactions
where           dbo.vue_transactions.datefacture >= '2017-01-01'
Cela fonctionne très bien, j'obtiens donc :

NoDeb DateFacture MontantTTC MontantTVA CompteDB CompteCR
1 2545 2017-12-05 108 8 1100 3000
1 2545 2017-12-05 -108 -8 3000 1100

Ma question est : n'y a t-il pas plus simple pour arriver au même résultat ?

Merci d'avance de vos réponses et commentaires.