J'ai une table de stocks dans MSSQL 2017. Il dispose de colonnes: maintenant, je dois afficher cette information dans 2 lignes: p> est-il possible de faire du pivot ()? Suis-je sur un chemin correct?
P.S J'utilise l'entité Framework Core. p> p>
3 Réponses :
Vous pouvez facilement faire cela en utilisant Je pense que vous pouvez faire cela en utilisant appliquer code>: impublard code>, mais c'est une syntaxe superflue . appliquer code> implémente les jointures latérales, qui sont très puissantes. Ce n'est qu'un exemple de la façon dont ils peuvent être utilisés. P> p>
Utilisez une procédure stockée pour renvoyer les résultats dont vous avez besoin.
Une approche simple à comprendre serait l'union:
context.StockLines.Select(s => new[] { new {
s.Product,
Quantity = s.QuantityInStock - s.ReservedQuantity,
Reserved = false
},
new {
s.Product,
Quantity = s.ReservedQuantity,
Reserved = true
}
}).SelectMany().ToList()
mon intellisense ne trouve pas .Selectmany (). J'ai fait -> Selectmany (x => x)
Vous pouvez utiliser UnPivot
SELECT Product,
Quantity,
Reserved
FROM (
SELECT product,
QuantityInStock AS [false],
ReservedQuantity AS [true]
FROM pro
) AS tt
UNPIVOT(Quantity FOR Reserved IN ([false], [true])) upvt