- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当使用 FOR XML AUTO 返回时,我试图了解我的 SQL 结果中的一些异常情况。奇怪的是,我在 XML 中得到了不同的结果。简而言之, 的计数机构应该总是 603,但 XML 数据给了我 3 个不同的总数,如这组代码片段所示:
下面的 ORDER BY 只是通过选择对结果进行排序。为了调试它,我手动运行了存储过程(注释掉 FOR XML 子句并创建了 3 个以传递的 SORT 参数为后缀的“调试”表(当没有使用 FOR XML AUTO 时,每个结果集包含 603 行)。
希望问题现在已经清楚地显示出来了。这是存储过程(我认为@Sort 值确定 ORDER BY 的底部逻辑是最相关的):
ALTER Procedure [dbo].[FLAS2_List_Awards_V4]
-- EXECUTE FLAS2_List_Awards_V4 2,0
(
@Sort int = 1
-- 1 = descending order on TotalAmount
-- 2 = descending order on TotalAwards
-- 3 = ascending order on Institution
,@Range int = 0
-- 0 = no filtering
-- 1 = < $1 million
-- 2 = < $5 million
-- 3 = < $10 million
-- 4 = < $15 million
-- 5 = < $20 million
-- 6 = > $20 million
)
As
CREATE TABLE #TempMarkers
(
ID nchar(6) NOT NULL
, Institution nvarchar(255) NOT NULL
, Street nvarchar(255) NULL
, City nvarchar(255) NULL
, State nvarchar(255) NULL
, Zip nvarchar(255) NULL
, Latitude decimal (28, 18) NULL
, Longitude decimal (28, 18) NULL
, TotalAwards decimal (16, 0) NULL
, TotalAmount decimal (16, 0) NULL
)
INSERT INTO #TempMarkers
(
ID
, Institution
, Street
, City
, State
, Zip
, Latitude
, Longitude
, TotalAwards
, TotalAmount
)
SELECT DISTINCT
C.ID
, C.InstitutionName
, NULL AS street
, NULL AS city
, NULL AS state
, NULL AS zip
, NULL As Latitude
, NULL As Longitude
, NULL As TotalAwards
, NULL As TotalAmount
FROM dbo.FLAS2_Schools2 C
-- where c.ID in (135717,434584)
UPDATE #TempMarkers
SET Street = x.street
,City = x.city
,State = x.state
,Zip = x.zip
FROM dbo.FLAS2_Schools2 X
WHERE X.ID = #TempMarkers.ID
AND
X.InstitutionName = #TempMarkers.Institution
UPDATE #TempMarkers
SET Latitude = Z.lat
,Longitude = Z.Long
FROM dbo.ZipCodesPreferred Z
WHERE Z.ZipCode = #TempMarkers.Zip
CREATE TABLE #TempGrants
(
ID nchar(6) NOT NULL
, TotalAwards decimal (16, 0) NULL
, TotalAmount decimal (16, 0) NULL
)
EXECUTE dbo.FLAS2_List_Awards_V3_PrepAwards @Range
CREATE TABLE #FinalMarkers
(
ID nchar(6) NOT NULL
, Institution nvarchar(255) NOT NULL
, Street nvarchar(255) NULL
, City nvarchar(255) NULL
, State nvarchar(255) NULL
, Zip nvarchar(255) NULL
, Latitude decimal (28, 18) NULL
, Longitude decimal (28, 18) NULL
, TotalAwards decimal (16, 0) NULL
, TotalAmount decimal (16, 0) NULL
)
INSERT INTO #FinalMarkers
(
ID
, Institution
, Street
, City
, State
, Zip
, Latitude
, Longitude
, TotalAwards
, TotalAmount
)
select
t1.ID
, Institution
, Street
, City
, State
, Zip
, Latitude
, Longitude
, t2.TotalAwards
, t2.TotalAmount
FROM #TempMarkers t1
join #TempGrants t2
on t1.id = t2.id
--SELECT * FROM #FinalMarkers
IF @Sort = 1
BEGIN
SELECT Marker.ID
,Marker.Institution
,Marker.Street
,Marker.City
,Marker.State
,Marker.Zip
,Marker.Latitude
,Marker.Longitude
,Marker.TotalAmount
,Marker.TotalAwards
,Award.GrantNumber as GrantNumber
,Award.TotalObligatedAmount as GrantAmount
FROM #FinalMarkers Marker
LEFT JOIN dbo.FLAS2_Grants Award
ON Marker.ID = Award.ID
order by Marker.TotalAmount DESC, Marker.Institution, GrantAmount DESC
for xml auto, root('root')
END
IF @Sort = 2
BEGIN
SELECT Marker.ID
,Marker.Institution
,Marker.Street
,Marker.City
,Marker.State
,Marker.Zip
,Marker.Latitude
,Marker.Longitude
,Marker.TotalAmount
,Marker.TotalAwards
,Award.GrantNumber as GrantNumber
,Award.TotalObligatedAmount as GrantAmount
FROM #FinalMarkers Marker
LEFT JOIN dbo.FLAS2_Grants Award
ON Marker.ID = Award.ID
order by Marker.TotalAwards DESC, Marker.Institution ,GrantAmount DESC
for xml auto, root('root')
END
IF @Sort = 3
BEGIN
SELECT Marker.ID
,Marker.Institution
,Marker.Street
,Marker.City
,Marker.State
,Marker.Zip
,Marker.Latitude
,Marker.Longitude
,Marker.TotalAmount
,Marker.TotalAwards
,Award.GrantNumber as GrantNumber
,Award.TotalObligatedAmount as GrantAmount
FROM #FinalMarkers Marker
LEFT JOIN dbo.FLAS2_Grants Award
ON Marker.ID = Award.ID
order by Marker.Institution ,Marker.Street, GrantAmount DESC
for xml auto, root('root')
END
最佳答案
好吧,这对我来说是一个难题(以及为什么我要悬赏),但我得到的帮助却无济于事。
我自己解决了这个问题。问题的要点是需要添加 GROUP BY 并通过添加 Marker.Street 来加强 ORDER BY 子句(参见下面的代码段)。顺便说一句,FOR XML AUTO 非常适合在 Marker 元素中创建 Award 元素。
IF @Sort = 2
BEGIN
SELECT Marker.ID
,Marker.Institution
,Marker.Street
,Marker.City
,Marker.State
,Marker.Zip
,Marker.Latitude
,Marker.Longitude
,Marker.TotalAmount
,Marker.TotalAwards
,Award.GrantNumber as GrantNumber
,Award.TotalObligatedAmount as GrantAmount
FROM #FinalMarkers Marker
LEFT JOIN dbo.FLAS2_Grants Award
ON Marker.ID = Award.ID
GROUP BY Marker.ID
,Marker.Institution
,Marker.Street
,Marker.City
,Marker.State
,Marker.Zip
,Marker.Latitude
,Marker.Longitude
,Marker.TotalAmount
,Marker.TotalAwards
,Award.GrantNumber
,Award.TotalObligatedAmount
order BY Marker.TotalAwards DESC
,Marker.ID
,Marker.Institution
,Marker.Street
,GrantAmount DESC
for xml auto, root('root')
END
关于tsql - 与正常的行集相比,FOR XML AUTO 子句能否给出意想不到的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42169519/
我在使用带有 vector STL 的迭代器时遇到了这个错误。 代码:- #include #include void print_vec(std::vector vec) { auto
JAVA:两个引用“p”&&“pp”之间有区别吗? PrintStream p = new PrintStream(System.out); p.println("lol");
我尝试从主分支中拉出,但收到错误消息: $ git --no-optional-locks -c color.branch=false -c color.diff=false -c color.sta
我面临着一个让我抓狂的问题! 我有一个函数,这个: void load_weapons3(t_env *e, char *name, int x, t_weapon *w) { char
我正在尝试使用 CUDA 中的最小值、最大值、总和和平均值实现并行归约。 这是我目前的主要代码片段。 int main() { const auto count = 8; const
我知道 double free 或 corruption 错误通常是对 big 3 的违规,但在这种情况下,我找不到违规发生的地方。我有一个复制构造函数、析构函数和赋值运算符,适用于任何处理指针的东西
GTK+ 中的“focus”和“focus-in(out)-event”信号有什么区别?哪个先发射?它们与键盘(TAB)和鼠标点击有什么关系。他们互相依赖吗? 我问这个是因为我想在顶层窗口中跟踪当前聚
*** glibc detected *** /home/ghoshs/workspace/Simulator/Debug/Simulator: double free or corruption (
#include #include #include #include using namespace std; #define MAX_WEIGHT 1000000 class Set {
我在服务器上有两个分支一个叫 R2 的分支和一个叫 DEV 的分支我无意中登录了错误的服务器,进入了存储库并执行了GIT pull 源开发但是存储库在 R2 上。所以我意识到我的错误然后尝试通过做一个
我有一个包含循环的大约 1000 个顶点和 3000 个边的有向图。 我试图从给定的顶点找到所有下游(出)路径。 使用以下 Gremlin 查询时 g.V(45712).repeat(out().si
使用 Delphi XE 2 我试图确定缩放方向以将缩放效果应用于图像(TImage),但没有找到执行此操作的函数,并且图像的 OnGesture 事件中的 EventInfo 属性没有此信息. 我见
我正在尝试创建一个 Zoom_image 函数,它使用离散傅里叶变换来缩放灰度图像。如果图像大小小于或等于 4*4 但大小增加,我包含的代码可以工作。它给出“双重释放或损坏(出)中止(核心转储)”错误
当我执行 popAll 函数时,出现以下错误: 双重释放或腐败(出)中止(核心转储) 我想我已经将错误来源缩小到了这个函数。 IntegerStack 是我制作的一个简单的 ADT,其中包含一个名为
我有网络开发背景,我正在尝试创建类似于 this technique 的东西适用于 iOS(使用 Cocoa/Obj C)。我在谷歌搜索资源时遇到了很多困难,因为 iOS 中的“视差”往往指的是 iO
我想实现一个 faceted search对于我的一个项目。我正在使用 PHP5、Mysql 和 Symfony 1.4。显然社区指向Apache Solr这似乎正是我想要完成的。 问题是该网站将在不
我知道有 questions floating around当您没有提供明确的分支名称时,关于来自特定分支的 git pull,但是我想知道即使用户确实指定了不同的分支,是否也可以强制 pull 分支
我正在尝试将我的更改推送到 NAS 上的存储库。它以我无法理解的方式失败。 documentation声明默认情况下 push 仅适用于快进更新。很公平。所以我做了一个 git pull(我的 Rem
我刚开始使用 Oracle 的 Coherence 缓存,我注意到这一点:如果我在缓存中放入一个 ConcurrentHashMap 对象,当我检索它时,我可以看到它被转换为一个普通的 HashMap
我尝试创建一个连接到数据库的线程,从那里获取一些数据并打印到控制台。问题是当该线程完成时抛出异常: 双重免费或腐败(出局)中止(核心转储) 我尝试使用 sqlite3 和 pthread,但这两个并不
我是一名优秀的程序员,十分优秀!