帮助与SQL Server查询

对不起*这是我应该把

我查询了,有超过1实例中的任何纪录(不论日期)创建重复的条目

<asp:SqlDataSource ID="EastMonthlyHealthDS" runat="server" ConnectionString="<%$ ConnectionStrings:SNA_TRTTestConnectionString %>" SelectCommand="SELECT [SNA_Parent_Accounts].[Company], (SELECT [Monthly_HIP_Reports].[AccountHealth] from [Monthly_HIP_Reports] where ([Monthly_HIP_Reports].[YearMonth] = @ToDtRFC) AND ([SNA_Parent_Accounts].[CompID] = [Monthly_HIP_Reports].[CompID])) as [AccountHealth], [SNA_Parent_Accounts].[CompID] FROM [SNA_Parent_Accounts] LEFT OUTER JOIN [Monthly_HIP_Reports] ON [Monthly_HIP_Reports].[CompID] = [SNA_Parent_Accounts].[CompID] WHERE (([SNA_Parent_Accounts].[Classification] = 'Business') OR ([SNA_Parent_Accounts].[Classification] = 'Business Ihn')) AND ([SNA_Parent_Accounts].[Status] = 'active') AND ([SNA_Parent_Accounts].[Region] = 'east') ORDER BY [SNA_Parent_Accounts].[Company]"> <SelectParameters> <asp:ControlParameter ControlID="ddMonths" Name="ToDtRFC" PropertyName="Text" Type="String" /> </SelectParameters> </asp:SqlDataSource>

使用SELECT DISTINCT出现,以纠正这个问题,但我不认为这是一个解决方案。 有在数据库中没有重复条目。 因此,它似乎我的查询superfically创建副本。

查询应抓住符合条件的where子句中的公司的名单,而且还抢在每家公司的健康状况特定[YearMonth]如果存在的话也就是子查询是什么。 如果该YearMonth条目不存在,然后离开了健康状况的空白。

但正如前面提到的。如果你有一个条目地说2009-03的CompID 2和2009-04的CompID 2条目..请问何年何月,你不选择不管它会列出该公司的2-3倍。

--------------解决方案-------------

此子查询:

(SELECT [Monthly_HIP_Reports].[AccountHealth] from [Monthly_HIP_Reports] where ([Monthly_HIP_Reports].[YearMonth] = @ToDtRFC)) as [AccountHealth],

是不相关的任何的SNA_Parent_Accounts列。

是不是故意的?

你是什​​么意思,它的“为有超过1实例中的任何记录创建重复项”? 看来,如果有一个以上的实例,重复条目已经有?

另外,我想看看这部分的代码:

SELECT count(*) FROM [SNA_Ticket_Detail]
WHERE ([SNA_Ticket_Detail].[CompID] = [SNA_Parent_Accounts].[CompID])
AND (CAST(CAST(YEAR([SNA_Ticket_Detail].[DtRFC]) AS VARCHAR(4))
+ '-0' + CAST(MONTH([SNA_Ticket_Detail].[DtRFC]) AS VARCHAR(2))
AS VARCHAR(7)) = @ToDtRFC)
AND ([SNA_Ticket_Detail].[Reviewed] = '1')
) as [TicketCount]

我看到一个VARCHAR(4)+'-0'+ VARCHAR(2),它看起来像最多8个字符给我,塞进一个VARCHAR(7)。 你失去了一个性格和复制这样呢?

我想你应该添加表和[SNA_Parent_Accounts表之间[Monthly_HIP_Reports]加盟。 我认为这是在那里得到复制,因为我不知道这些表...如果你给多个表的描述,我可以肯定的告诉哪里出了问题?

看来我发现左外侧内的问题JOIN

我有LEFT OUTER JOIN [Monthly_HIP_Reports] ON [Monthly_HIP_Reports]。[CompID] = [SNA_Parent_Accounts]。[CompID]

这是抓住其中的ID匹配的所有月度报告。 我需要的是

LEFT OUTER JOIN [Monthly_HIP_Reports] ON [Monthly_HIP_Reports]。[CompID] = [SNA_Parent_Accounts]。[CompID]与(Monthly_HIP_Reports]。[YearMonth] = @ToDtRFC)

所以限制它的YearMonth为好。

谢谢大家!

分类:asp.net 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.754 (s). 10 q(s)