我有一个数据一个SQL视图:SQL XML分组
+-----------+-------------+--------------+--------------------+------------------+-----------+----------------+--------------+-------------+----------+
| CarparkNo | CarparkAbbr | CarparkDesig | CountingCategoryNo | CountingCategory | FreeLimit | OccupancyLimit | CurrentLevel | Reservation | Capacity |
+-----------+-------------+--------------+--------------------+------------------+-----------+----------------+--------------+-------------+----------+
| 0 | L72 | Lot 72 | 1 | Short-Term | 174 | 175 | 87 | 0 | 175 |
| 0 | L72 | Lot 72 | 2 | Contract | 0 | 0 | 0 | 0 | 0 |
| 0 | L72 | Lot 72 | 3 | Total | 174 | 175 | 87 | 0 | 175 |
+-----------+-------------+--------------+--------------------+------------------+-----------+----------------+--------------+-------------+----------+
我需要做的是寻找一个XML文件中像
<Carparks>
<Carpark>
<CarparkNo>0</CarparkNo>
<CarparkAbbr>L72</CarparkAbbr>
<CarparkDesig>Lot 72</CarparkDesig>
<CountingCategory>
<CountingCategoryNo>1</CountingCategoryNo>
<CountingCategory>Short-Term</CountingCategory>
<FreeLimit>174</FreeLimit>
<OccupancyLimit>175</OccupancyLimit>
<CurrentLevel>64</CurrentLevel>
<Reservation>0</Reservation>
<Capacity>175</Capacity>
</CountingCategory>
<CountingCategory>
<CountingCategoryNo>2</CountingCategoryNo>
<CountingCategory>Contract</CountingCategory>
<FreeLimit>0</FreeLimit>
<OccupancyLimit>0</OccupancyLimit>
<CurrentLevel>0</CurrentLevel>
<Reservation>0</Reservation>
<Capacity>0</Capacity>
</CountingCategory>
<CountingCategory>
<CountingCategoryNo>3</CountingCategoryNo>
<CountingCategory>Total</CountingCategory>
<FreeLimit>174</FreeLimit>
<OccupancyLimit>175</OccupancyLimit>
<CurrentLevel>64</CurrentLevel>
<Reservation>0</Reservation>
<Capacity>175</Capacity>
</CountingCategory>
</Carpark>
</Carparks>
到目前为止,我有一种说法:
SELECT [CarparkNo]
,[CarparkAbbr]
,[CarparkDesig]
,(SELECT [CountingCategoryNo]
,[CountingCategory]
,[FreeLimit]
,[OccupancyLimit]
,[CurrentLevel]
,[Reservation]
,[Capacity]
FOR XML PATH('CountingCategory'), TYPE)
FROM [PARK_DB].[dbo].[CPCounting]
FOR XML PATH('Carpark'), ROOT('Carparks'), TYPE;
哪种作品,但使重复<Carpark>
标签,而不是保持在一个分组:
<Carparks>
<Carpark>
<CarparkNo>0</CarparkNo>
<CarparkAbbr>L72</CarparkAbbr>
<CarparkDesig>Lot 72</CarparkDesig>
<CountingCategory>
<CountingCategoryNo>1</CountingCategoryNo>
<CountingCategory>Short-Term</CountingCategory>
<FreeLimit>174</FreeLimit>
<OccupancyLimit>175</OccupancyLimit>
<CurrentLevel>82</CurrentLevel>
<Reservation>0</Reservation>
<Capacity>175</Capacity>
</CountingCategory>
</Carpark>
<Carpark>
<CarparkNo>0</CarparkNo>
<CarparkAbbr>L72</CarparkAbbr>
<CarparkDesig>Lot 72</CarparkDesig>
<CountingCategory>
<CountingCategoryNo>2</CountingCategoryNo>
<CountingCategory>Contract</CountingCategory>
<FreeLimit>0</FreeLimit>
<OccupancyLimit>0</OccupancyLimit>
<CurrentLevel>0</CurrentLevel>
<Reservation>0</Reservation>
<Capacity>0</Capacity>
</CountingCategory>
</Carpark>
<Carpark>
<CarparkNo>0</CarparkNo>
<CarparkAbbr>L72</CarparkAbbr>
<CarparkDesig>Lot 72</CarparkDesig>
<CountingCategory>
<CountingCategoryNo>3</CountingCategoryNo>
<CountingCategory>Total</CountingCategory>
<FreeLimit>174</FreeLimit>
<OccupancyLimit>175</OccupancyLimit>
<CurrentLevel>82</CurrentLevel>
<Reservation>0</Reservation>
<Capacity>175</Capacity>
</CountingCategory>
</Carpark>
</Carparks>
我怎么去这个格式到所需的规格?该命令在其下运行的帐户只能读取系统提供的视图。
我不明白你的意思。一个标签是“停车场”,另一个是“停车场”。你重复的意思是什么? –
所以'Carparks'是根,而'Carpark'是,如果/当我们有多个位置。它应该由“CarparkNo”分组。我不知道该怎么做。 –
好吧。可能重复:https://stackoverflow.com/questions/18132039/sql-server-two-level-group-by-with-xml-output –