Ich habe eine SQL-Abfrage unten, die ich als XML mit der FOR XML-Syntax formatieren möchte.Verwenden von FOR XML zum Gruppieren gegen 2 SQL-Tabellen
Dies ist ein Beispiel für das XML-Format, in dem die Abfrage aussehen soll.
<trans_groups>
<grouped id="56" created="4/14/2017">
<ordernumber>1022108100000001</ordernumber>
<ordernumber>1022108100000002</ordernumber>
<ordernumber>1022108100000003</ordernumber>
</grouped>
<grouped id="57" created="4/14/2017">
<ordernumber>1022109100000001</ordernumber>
<ordernumber>1022109100000002</ordernumber>
</grouped>
</trans_groups>
Bis jetzt konnte ich das nicht ganz richtig bekommen. Ich habe Folgendes versucht, aber dies gruppiert die Bestellungen nicht.
select gr.id as [@id], gr.created as [@created],
(
SELECT ts.ordernumber as ordernumber
)
FROM trGrouped gr inner join transactions ts on ts.grouped_id = gr.id
where ts.ordernumber in('4003970100000383', '4003970100000376', '4003970100000369', '1022108100000018')
FOR XML PATH('grouped'), ROOT('trans_groups')
Sehr nett! Gibt es im Allgemeinen einen Unterschied zwischen der "Select distinct" abgeleiteten Tabelle und der "Group by ID, created"? http://rextester.com/ZLS77092 – SqlZim
@SqlZim Bei größeren Datensätzen habe ich festgestellt, dass DISTINCT schneller ist, nicht viel, aber bemerkbar. Das mag Stammeswissen gewesen sein, also werde ich noch einmal darüber sprechen und ein paar Benchmarks ausführen. –
@SqlZim Bei einer Stichprobengröße von 80.000 Datensätzen betrug die durchschnittliche Laufzeit des DISTINCT 327 ms, während die GROUP BY 412MS betrug –