Ich habe diese einfache T-SQL-Abfrage, es emittiert eine Reihe von Spalten aus einer Tabelle und verbindet auch Informationen aus anderen bezogenen Tabellen.Keeping es einfach und wie mehrere CTE in einer Abfrage zu tun
Mein Datenmodell ist einfach. Ich habe eine geplante Veranstaltung mit Teilnehmern. Ich muss wissen, wie viele Teilnehmer an jeder Veranstaltung teilnehmen.
Meine Lösung ist das Hinzufügen eines CTE, der geplante Ereignisse gruppiert und die Anzahl der Teilnehmer zählt.
Dies ermöglicht es mir, diese Informationen pro geplantem Ereignis beizutreten. Halten Sie die Abfrage einfach.
Ich mag es, meine Abfragen einfach zu halten, aber wenn ich jemals in der Zukunft zusätzliche temporäre Ergebnisse während meiner einfachen Abfrage zugänglich machen muss, was soll ich tun?
Ich würde es wirklich gerne, wenn ich mehrere CTEs haben könnte, aber ich kann nicht, oder? Was sind meine Möglichkeiten hier?
Ich habe Ansichten und Dinge auf der Anwendungsdatenebene ausgeschlossen. Ich bevorzuge es, meine SQL-Abfragen zu isolieren.
Es war so einfach. Die MSDN-Dokumentation war ein wenig unscharf um das Problem, ich konnte nichts Schlüssiges finden. Vielen Dank! –
Es ist dokumentiert in [MIT common_table_expression (Transact-SQL)] (http://msdn.microsoft.com/en-us/library/ms175972.aspx). Sie können sehen, dass dies im Syntaxbereich ist (beachten Sie besonders die '[, ... n]' in '[WITH [, ... n]]'. Beispiel C, "Verwenden mehrerer CTE-Definitionen in eine einzelne Abfrage "ruft dies explizit auf. Leider ist dieses Beispiel nicht in der Dokumentation für SQL 2008 und älter enthalten (dh das Beispiel wurde nicht zur Verfügung gestellt, als das OP die Frage gestellt hat). –
Brian