Ich habe ein Problem beim Erstellen einer etwas fortgeschrittenen Abfrage.Anzahl der neuesten Elemente aus der sekundären Ansicht abrufen
Ich habe zwei Ansichten - A und B wo B das Kind von A ist.
Diese Beziehung wird durch
A vw_StartDate.MapToID
=
B vw_TrackerFeaturesBasic.StartDateMapToID behandelt wird.
Was ich tun müssen, um alle Eltern greifen A und eine Zählung der AKTUELLEN hinzugefügt Kinder B.
Dies ist eine Abfrage, die Kinder um die neuesten B in einem SSRS-Bericht wird: (Dieser nicht überhaupt nicht verwenden A!):
/****** 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
ich ein paar verschiedene Möglichkeiten versucht haben, , aber ich kann nicht herausfinden, wie ich die zuletzt hinzugefügten Kinder aus der Unterabfrage erhalte (ich habe hauptsächlich eine Unterabfrage verwendet, die in COUNT/Case + SUM eingebettet ist).
Da SQL Server uns nicht wirklich erlaubt, Aggregatfunktionen in Aggregatfunktionen zu verwenden, bin ich nicht sicher, wie das zuletzt hinzugefügte Element in einer Unterabfrage erhalten wird, da die Unterabfrage höchstwahrscheinlich in COUNT oder ähnlichem verschachtelt sein muss .
Nachfolgend finden Sie eine Version arbeite ich an (nicht funktioniert):
Spalte ‚vw_TRK_TrackerFeaturesBasic.StartDateMapToID‘ in der Auswahlliste ungültig ist, weil es in einer Aggregatfunktion nicht enthalten ist oder die GROUP BY-Klausel.
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
Entschuldigung. Ich bin mir einfach nicht sicher, wie ich eine gute Frage zu SQL formulieren soll. Ich habe versucht, deine Antwort zu kopieren, aber ich habe nicht die erwarteten Ergebnisse erhalten. Grundlegend was ich brauche, ist eine Abfrage, die jedes Elternteil und eine Anzahl der zutreffenden (ApplicableToProject) und unvollständigen (ReadyForWork) Zeilen des letzten (MAX (DateStamp)) eingefügten Kinds erfasst. Jedes Kind hat die oben genannten Felder und jedes ich muss eine Zählung des zuletzt eingefügten Kindes erhalten, wo die obigen Felder anwendbar sind = 1, bereit = 0. – geostocker
@geostocker. . . Sie sollten eine andere Frage mit geeigneten Beispieldaten und gewünschten Ergebnissen stellen. –