Jquery 我如何正确地将在职者的头衔附加到当前的职位上?
下面的问题这么简单,真的让我很紧张 请容忍我 下面的查询列出了参加office的个人 如果其中一名候选人是现任公职人员,请在其姓名后加上括号中在职人员的头衔 我已经在SSMS中运行了以下查询,并得到了我正在寻找的结果,但当与我的.net应用程序一起使用时,它不会将现任职务附加到当前任职者 我错过了什么Jquery 我如何正确地将在职者的头衔附加到当前的职位上?,jquery,asp.net,sql-server,vb.net,Jquery,Asp.net,Sql Server,Vb.net,下面的问题这么简单,真的让我很紧张 请容忍我 下面的查询列出了参加office的个人 如果其中一名候选人是现任公职人员,请在其姓名后加上括号中在职人员的头衔 我已经在SSMS中运行了以下查询,并得到了我正在寻找的结果,但当与我的.net应用程序一起使用时,它不会将现任职务附加到当前任职者 我错过了什么 WITH ctePreAgg AS ( SELECT ( ElectionName + ' - ' + CAST(ClosingDat
WITH ctePreAgg
AS (
SELECT ( ElectionName + ' - ' + CAST(ClosingDate AS VARCHAR(14)) ) electionName
,CASE WHEN Position = 'Member' THEN 'NULL'
ELSE Position
END AS Position
,CASE WHEN c.CurrentOfficeHolder = 'Incumbent'
THEN CandidateName + '(' + c.CurrentOfficeHolder + ')'
ELSE CandidateName
END AS CandidateName
,c.PositionId
,CurrentOfficeHolder
,AnswerType
FROM Candidates c
JOIN Positions p
ON c.PositionId = p.PositionId
JOIN Elections e
ON c.ElectionId = e.ElectionId
WHERE c.ElectionId IN ( 1, 2, 3 )
GROUP BY Position
,CandidateId
,CandidateName
,c.PositionId
,CurrentOfficeHolder
,AnswerType
,ElectionName
,ClosingDate
)
SELECT [ElectionName_Position] = CASE WHEN GROUPING(mh.PositionId) = 0 THEN MAX(mh.Position)
ELSE mh.ElectionName
END
,CandidateName = CASE WHEN GROUPING(mh.PositionId) = 0 THEN MAX(mh.CandidateName)
ELSE ''
END
,PositionId = CASE WHEN GROUPING(mh.PositionId) = 0 THEN mh.PositionId
ELSE 0
END
,CurrentOfficeHolder = CASE WHEN GROUPING(mh.PositionId) = 0
THEN MAX(ISNULL(mh.CurrentOfficeHolder, 'NULL'))
ELSE ''
END
,AnswerType = CASE WHEN GROUPING(mh.PositionId) = 0 THEN MAX(mh.AnswerType)
ELSE ''
END
FROM ctePreAgg mh
GROUP BY ElectionName
,PositionId
WITH ROLLUP
HAVING GROUPING(mh.ElectionName) = 0
ORDER BY mh.ElectionName
,GROUPING(mh.PositionId) DESC
,mh.PositionID;
//SqlDataSource:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:BallotsConnectionString %>"
SelectCommand="WITH ctePreAgg
AS (
SELECT ( ElectionName + ' - ' + CAST(ClosingDate AS VARCHAR(14)) ) electionName
,CASE WHEN Position = 'Member' THEN ''
ELSE Position
END AS Position
,CASE WHEN c.CurrentOfficeHolder = 'Incumbent' THEN CandidateName + '(' + c.CurrentOfficeHolder + ')'
ELSE CandidateName
END AS CandidateName
,c.PositionId
,AnswerType
FROM Candidates c
JOIN Positions p
ON c.PositionId = p.PositionId
JOIN Elections e
ON c.ElectionId = e.ElectionId
WHERE c.ElectionId IN ( 1, 2, 3 )
GROUP BY Position
,CandidateId
,CandidateName
,c.PositionId
,CurrentOfficeHolder
,AnswerType
,ElectionName
,ClosingDate
)
SELECT [ElectionName_Position] = CASE WHEN GROUPING(mh.PositionId) = 0 THEN MAX(mh.Position)
ELSE mh.ElectionName
END
,CandidateName = CASE WHEN GROUPING(mh.PositionId) = 0 THEN MAX(mh.CandidateName)
ELSE ''
END
,PositionId = CASE WHEN GROUPING(mh.PositionId) = 0 THEN mh.PositionId
ELSE 0
END
,AnswerType = CASE WHEN GROUPING(mh.PositionId) = 0 THEN MAX(mh.AnswerType)
ELSE ''
END
FROM ctePreAgg mh
GROUP BY ElectionName
,PositionId
WITH ROLLUP
HAVING GROUPING(mh.ElectionName) = 0
ORDER BY mh.ElectionName
,GROUPING(mh.PositionId) DESC
,mh.PositionID;">
<SelectParameters>
<asp:SessionParameter SessionField="ElectionId" Type="Int32" Name="ElectionId" DefaultValue="0" />
</SelectParameters>
</asp:SqlDataSource>
您缺少列,CurrentOfficeHolder=分组时的大小写(mh.PositionId)=0,然后最大值(ISNULL(mh.CurrentOfficeHolder,'NULL'))否则“”将结束SQL代码中的.NET。您可能只是在完成工作之前复制了代码。这是将代码保存在一个地方的最佳理由,而SP是保存代码的最佳位置。您可能还需要添加.net代码,以便人们可以检查查询中的差异。最好的做法是包装在SP中工作的代码,并从中调用该SP。NET@JiggsJedi当然请看上面。也谢谢弗拉基米尔。一旦我能证明这至少可以嵌入,我就会这样做。当分组(mh.PositionId)=0然后最大值(ISNULL(mh.CurrentOfficeHolder,'NULL'))时,你缺少,CurrentOfficeHolder=CASE,那么你现在能做的最简单的事情就是从.NET中删除代码并从SSMS中插入代码