Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server:将2个TSQL查询结果转换为XML_Sql Server_Xml_Tsql - Fatal编程技术网

Sql server SQL Server:将2个TSQL查询结果转换为XML

Sql server SQL Server:将2个TSQL查询结果转换为XML,sql-server,xml,tsql,Sql Server,Xml,Tsql,我们有两个TSQL查询,每个查询从count语句返回一个数字: select count(*) from (select *, row_number() over (partition by Username order by EntryDatetime desc) as seqnum from [log]) t where seqnum = 1 and EventDesc in ('Logon', 'reconnectio

我们有两个TSQL查询,每个查询从count语句返回一个数字:

select count(*)
from 
    (select 
        *,
        row_number() over (partition by Username order by EntryDatetime desc) as seqnum
    from [log]) t
where 
    seqnum = 1 
    and EventDesc in ('Logon', 'reconnection');

select COUNT(*)
from 
    (select 
        *,
        row_number() over (partition by Username order by EntryDatetime desc) as seqnum
    from [log]
    where EntryDatetime > convert(varchar(255), dateadd(month, -1, getdate()), 121)) t
where 
    seqnum = 1;
我们如何结合这两个结果创建一个XML文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <item>15</item>
    <min>
        <value>0</value>
        <text>Min Users</text>
    </min>
    <max>
       <value>30</value>
       <text>Max Users</text>
    </max>
</root>

15
0
最小用户数
30
最大用户

我们已经尝试使用xpshell和bcp,但看不到如何使用2个查询的结果来生成同一个XML文件?

您可以使用该子句在TSQL中完成所有操作,无需尝试从外部合并2个结果集

; with cte as (
    select 15 as i, 0 as v, 'Min Users' as t
    union all
    select null as i, 30 as v, 'Max Users' as t
)
select
    i as [item],
    v as [min/value], 
    t as [min/text]
from
    cte
for xml path (''), root ('root')

结果似乎与XML无关,因此不可能给出具体的答案。首先创建一个包含所需数据和名称的SELECT语句,然后添加子句以生成XML。第一个TSQL语句用于15位数,第二个用于30位数。XML中的其他细节是静态的。
item
和字段名来自哪里?首先,您需要创建一条语句,该语句返回所需的数据和所需的名称。只有这样,才能将其转换为XML。