J'ai cette simple requête T-SQL, elle émet un tas de colonnes à partir d'une table et joint également les informations d'autres tables liées .
Mon modèle de données est simple. J'ai un événement programmé, avec des participants. J'ai besoin de savoir combien de participants participent à chaque événement.
Ma solution à cela est d'ajouter un CTE qui regroupe les événements programmés et compte le nombre de participants.
Cela me permettra de participer à ces informations par événement programmé. Garder la requête simple.
Cependant, j'aime garder mes requêtes simples, si jamais j'ai besoin à l'avenir d'avoir des résultats temporaires supplémentaires accessibles pendant ma requête simple, que dois-je faire?
Je l'aimerais vraiment, si je pouvais avoir plusieurs CTE mais je ne peux pas, non? Quelles sont mes options ici?
J'ai exclu les vues et les actions au niveau de la couche de données d'application. Je préfère isoler mes requêtes SQL.
la source
[ ,...n ]
in[ WITH <common_table_expression> [ ,...n ] ]
. Exemple C, «Utilisation de plusieurs définitions CTE dans une seule requête», l'appelle explicitement. Malheureusement, cet exemple n'est pas fourni dans la documentation de SQL 2008 et plus ancien (c'est-à-dire que l'exemple n'a pas été fourni lorsque le PO a posté la question).UNION ALL
Vous pouvez certainement avoir plusieurs CTE dans une seule expression de requête. Il vous suffit de les séparer par une virgule. Voici un exemple. Dans l'exemple ci-dessous, il y a deux CTE. L'un est nommé
CategoryAndNumberOfProducts
et le second est nomméProductsOverTenDollars
.la source