申し訳ありません*これは私がヘルプ
を入れているべきである私のクエリはSELECTを使用して<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>
(日付に関係なく)1つの以上のインスタンスを持つすべてのレコードの重複したエントリを作成している
DISTINCTは問題を解決するように見えますが、解決策はありません。データベースに重複するエントリはありません。だから私のクエリはsuperfically複製を作成しているようです。
クエリでは、where句の条件を満たす企業のリストを取得する必要がありますが、その特定の[YearMonth]内の各企業の正常性ステータス(サブクエリが存在する場合)も取得する必要があります。そのYearMonthのエントリが存在しない場合は、Healthステータスを空白のままにします。
しかし、CompID 2の2009-03とCompID 2の2009-04のエントリがある場合は、選択した月が問題ではありません。 3回。
VARCHARのニースポイントは、そうであるようです – Quassnoi