Ich habe eine Lösung für dieses Problem, aber ich weiß nicht, ob es der beste Weg ist, darüber zu gehen, damit ich nach besseren Alternativen suche.Zählen Teilnahme bis zum Tag
Ich versuche, die Teilnahme von Tag
Zeitraum zwischen zwei Wochen also zwei Menschen in einem Sport über 2 Wochen teilnehmen zu zählen
Person A Person b
Woche 1
Day 1: A, b
DAY 2: A, b
Day 3: a, b
Day 4: a, b
Day 5: a, b
Woche 2
Day 1: A, B
DAY 2: A
DAY 3: A
Day 4: A, B
Day 5: B
Deshalb möchte ich wissen, wie viele Teilnehmer hat mir in der vergangenen Woche im Vergleich So ist die Ausgabe wie
VERLUST aussehen: TAG 1: 0, Tag 2: 1, Tag 3: 1, Tag 4: 0 , Tag 5: 1
Also, was ich zur Zeit mache ist eine Unterabfrage in der where caluse und nicht mit in und Looping durch die Tage wie die
DECLARE @days table (d TIN
INSERT INTO @days
VALUES(1), (2), (3), (4), (5), (6), (7)
SELECT COUNT(Person), DayOfWeek
FROM participation
WHERE WEEK = Week1
AND DAY = @day
AND PERSON NOT IN (SELECT Person
FROM participation
WHERE WEEK = Week2
and Day = @day)
figured it out
eine sehr sehr ähnliche Methode, um die Antwort Verwendet unter
WITH CTE AS
(SELECT dayofweek, person
FROM Participation
Where week = week1)
SELECT DayOfWeek, COunt(CTE.Person), COunt(a.Person)
FROM CTE
LEFT JOIN (SELECT DayOfWeek, Person
FROM Participation
where week = week2)a
ON a.Person = CTE.Person
and a.dayofweek = cte.dayofweek
ich mit einer berechneten Spalte ein #table dass in setzen und dann die min jeden Tag bekommen, und ich habe meine Antwort. Danke für die Hilfe
Kein Weg, der funktioniert. Tag = @ Tag? Sie haben eine Tabelle mit @days. WOCHE = Woche1? – Paparazzi
@Paparazzi Entschuldigung Es hat keinen Codeblock hinzugefügt, den ich dort hatte – WBratz