Nous travaillons sur une application C#, nous avons utilisé Linq to SQL ou ADO standard (lorsque les performances requises) pour travailler avec SQL Server.SQL Server - PIVOT
Nous avons une table layed dehors comme si:
N ° de client, Année/Mois, Nom du produit, Quantité
Chaque client a des colonnes supplémentaires par produit.
Nous avons besoin d'afficher ces informations dans une grille de données comme ceci:
client, Année/Mois, Produit A Quantité, produit B Quantité, produit C Quantité, etc.
Quelle requête pourrait donner nous ces résultats? Et comment pourrait-il être dynamique, peu importe quels produits sont ajoutés et supprimés? Nous allons utiliser un ListView dans WPF pour afficher les données.
Nous stockerons simplement les informations différemment, mais ils peuvent ajouter/supprimer des produits tout le temps.
Est-ce que PIVOT fonctionnera?
(PS - les noms de produits sont vraiment dans une autre table pour la normalisation, je l'ai changé un peu de simplicité pour vous les gars)
Quel genre de vitesse que je regarde ici? Les requêtes appelant cette procédure stockée seront-elles assez lentes pour une table contenant 22 millions d'enregistrements? – jonathanpeppers
Le SP génère un code T-SQL dynamique comme 'select customername, cas où productid = 1 puis quantité autre 0 END AS Product1, case .... du groupe de commande par nom_personnel'. Mon expérience avec les serveurs de production est limitée, donc je n'ai aucune idée de 22 millions d'enregistrements. Mais je vous suggère de créer l'index sur la colonne productname puis de tester la vitesse avec les enregistrements créés par les outils de génération de stress/enregistrement de sql server. –
Votre réponse doit être correcte, à moins qu'il y ait un moyen alternatif de procéder. Mes problèmes vont être la vitesse et la flexibilité, donc nous allons devoir essayer. – jonathanpeppers