这是我的疑问:
SELECT title1,
[precinct percent] AS [PrecinctPercent],
leader,
[leader percent] AS [LeaderPercent],
Winner,
WinningVotes,
leader2,
[leader2 percent] AS [Leader2Percent],
Loser,
LosingVotes
FROM [leader].dbo.[RACE] r inner join
(select rc.[race number],
max(case when seqnum = 1 then [candidate num] end) as Winner,
max(case when seqnum = 1 then Votes end) as WinningVotes,
max(case when seqnum = 2 then [candidate num] end) as Loser,
max(case when seqnum = 2 then Votes end) as LosingVotes
from (select rc.*,
row_number() over (partition by rc.[race number] order by votes desc) as seqnum
from [leader].dbo.[RACE CANDIDATES] rc
) rc
group by rc.[race number]
) rc
on r.[race number] = rc.[race number]
FOR XML PATH ('WQAD'), ROOT('root')
此查询运行并产生我想要的一些结果。我试图将XML文件作为文件输出。我已经能够通过在Server Management Studio中打开xml,然后运行VB脚本来重新生成临时xml文件,然后将该xml移动到它的目的地来实现这一目的。嘿......我必须做我要做的事情才能将这些结果发送到AIR。
通过我的旅行,我试图使用sqlcmd来完成这项工作。这是我想要运行的:
sqlcmd -S WQAD-SEVE\SQLEXPRESS -i C:\Users\localtv\Desktop\QUERIES\THISONE22 .sql -o C:\Users\localtv\Desktop\RESULTS236.xml
它会执行,但是当我打开/编辑它输出的XML文件时,我得到:
消息208,级别16,状态1,服务器WQAD-SEVE \ SQLEXPRESS,第1行 无效的对象名称' dbo.RACE'。
我尝试插入[database] .dbo.RACE,但仍遇到同样的问题。我已经在这方面工作了几个星期,并且正试图想办法让这个工作起作用。
此外,当我尝试在没有-o输出目标的情况下运行命令时,命令行会回显相同的错误消息。从我的查询的外观来看,它在遇到dbo.RACE之前已经完成了很长时间。
有什么建议吗?
提前感谢您的宝贵帮助。
***我删除了[databasename]和.dbo。同样,仍将RACE显示为无效对象。
答案 0 :(得分:7)
正如您所发现的那样,我确认您需要指定-d MyDatabaseName
选项。
否则,即使在脚本invalid object name "Table"
子句中添加数据库名称(即偶{{1},您也会在使用FOR XML PATH
后立即收到FROM
错误不会绕过FROM Database.dbo.Table
-d
}的需要。奇异。
Re:它没有踢出格式正确的xml文件:
您需要将:XML ON
作为输入(FOR XML AUTO
)文件中的第一行添加到-i
:
sqlcmd
答案 1 :(得分:0)
有点晚但在SQL脚本中只需在查询之前添加以下内容:
USE dbname;
SELECT ...