鉴于下面的查询,是否可以将“元数据”元素下的元素作为“事件”元素的属性,而不更改子查询的 where 子句(即 WHERE UniqueID = t1.UniqueID AND ID = MAX(t1. ID))?
声明@Event 表
(
UniqueID VARCHAR(3),
ID INT,
名称 VARCHAR(25),
纬度浮动,
经度浮动,
主键(唯一 ID,ID)
);
声明@Vehicle1 表
(
UniqueID VARCHAR(3),
ID INT,
第 1 列 VARCHAR(25)
);
声明@Vehicle2 表
(
UniqueID VARCHAR(3),
ID INT,
第 1 列 VARCHAR(25)
);
插入@Event 值('ABC'、1、'LPR'、1.234、2.345)
插入@Event 值('ABC'、2、'LPR'、2.234、3.345)
插入@Event 值('ABC'、3、'LPR'、3.234、4.345)
插入@Event 值('ABC'、4、'LPR'、4.234、5.345)
插入@Event 值('DEF'、1、'LPR'、1.234、2.345)
插入@Event VALUES ('GHI', 1, 'Manual Scan', 1.234, 2.345)
插入@Event VALUES ('GHI', 2, 'Manual Scan', 2.234, 3.345)
插入@Vehicle1 值('ABC',1,'Plate # 1')
插入@Vehicle1 值('ABC',1,'Plate #2')
插入@Vehicle2 值('GHI',1,'Plate # 1')
插入@Vehicle2 值('GHI', 2, 'Plate #2')
插入@Vehicle2 值('GHI',3,'Plate # 3')
选择
唯一 ID 作为唯一 ID,
(选择
ID,
姓名,
纬度,
经度
来自@事件
其中 UniqueID = t1.UniqueID AND ID = MAX(t1.ID)
FOR XML RAW('元数据'),元素,类型),
(选择
第 1 列
来自@Vehicle1
在哪里 UniqueID = t1.UniqueID
FOR XML RAW ('Row'), TYPE, ROOT ('Vehicle1')),
(选择
第 1 列
来自@Vehicle2
在哪里 UniqueID = t1.UniqueID
FOR XML RAW ('Row'), TYPE, ROOT ('Vehicle2'))
来自@Event t1
按 t1.UniqueID 分组
FOR XML RAW ('Event')、TYPE、ROOT ('Events')