2016-11-01 3 views
0

多少高度なクエリを作成する際に問題が発生しました。 Bの子であるB -セカンダリビューから最新のアイテムを取得する

私は2つの景色を眺めることができます。

この関係は

  • vw_StartDate.MapToID

    =

  • B vw_TrackerFeaturesBasic.StartDateMapToIDによって処理されます。私がする必要がどのような

は、すべての親LATEST追加子供Bのカウントをつかむです。

これはSSRS-レポートに最新の子どもたちBを取得するクエリです:(これがすべてでを使用していません!):

/****** Selecting the incomplete, applicable issues of the latest insert. ******/ 
SELECT DISTINCT [TRK_Feature_LKID] 
     ,[TrackerGroupDescription] 
     ,[ApplicableToProject] 
     ,[ReadyForWork] 
     ,[DateStamp] 

FROM [vw_TRK_TrackerFeaturesBasic] as temp 
WHERE ApplicableToProject = 1 
AND DateStamp = (SELECT MAX(DateStamp) from [vw_TRK_TrackerFeaturesBasic] WHERE [TRK_StartDateID] = @WSCTrackerID AND StartDateMapToID = @HierarchyID AND [TRK_Feature_LKID] = temp.TRK_Feature_LKID) 

    ORDER BY DateStamp DESC 

私はいくつかの異なる方法を試してみましたサブクエリから最新の子を取得する方法を理解することはできません(私は主に、COUNT /ケース+ SUMにあるサブクエリを使用しています)。

集計関数で集計関数を使用することは実際には許可されていないため、サブクエリで最新の追加項目を取得する方法がわかりません。サブクエリはCOUNTなどにネストされる可能性が高いためです。以下は

私は(動作しない)に取り組んでいたバージョンです:

列「vw_TRK_TrackerFeaturesBasic.StartDateMapToID」は、集計関数またはいずれかに含まれていないため、選択リストでは無効ですGROUP BY句。

SELECT b.TRK_StartDateID 
     ,(SELECT COUNT(b.TRK_Feature_LKID) FROM b) 
FROM vw_TRK_StartDate as a 
    LEFT JOIN vw_TRK_TrackerFeaturesBasic as b 
    ON b.StartDateMapToID = a.MapToID AND b.DateStamp = (SELECT MAX(DateStamp) FROM [vw_TRK_TrackerFeaturesBasic] WHERE [TRK_StartDateID] = 47 AND [StartDateMapToID] = 13) 
WHERE MapToId = 13 

--(SELECT MAX(DateStamp) from [vw_TRK_TrackerFeaturesBasic] WHERE [TRK_StartDateID] = @WSCTrackerID AND StartDateMapToID = @HierarchyID AND [TRK_Feature_LKID] = temp.TRK_Feature_LKID 

GROUP BY b.TRK_StartDateID 

答えて

0

私はあなたのクエリと、この要求との間の関係が表示されていないので、あなたの質問は、従うことが少し難しいです:

私がする必要がどのようなすべての親Aをつかむですこの文を中心にB.

LATEST 追加の子どもの数は、あなたは窓関数で、これを容易に行うことができます。

SELECT b.StartDateMapToID, COUNT(*) 
FROM (SELECT tfb.*, 
      MAX(tfb.DateStamp) OVER (PARTITION BY tfb.StartDateMapToID) as max_DateStamp 
     FROM vw_TRK_TrackerFeaturesBasic tfb 
    ) tfb 
GROUP BY b.StartDateMapToID; 
+0

ごめんなさい。私は、SQLについての良い質問をどのように策定するかについてはあまりよく分かりません。あなたの答えをコピーして貼り付けてみましたが、期待した結果が得られませんでした.. 私が必要とするのは、すべての親と、最新の(MAX(DateStamp))挿入された子の該当する(ApplicableToProject)行と不完全な(ReadyForWork)行の数を取得するクエリです。 すべての子は上記のフィールドを持っており、上記のフィールドがApplicable = 1、ready = 0の最新の子をカウントする必要があります。 – geostocker

+0

@geostocker。 。 。あなたは、適切なサンプルデータと希望の結果で別の質問をする必要があります。 –

関連する問題