Hey
I have made an sql.
But it is not what I want. I hope someone can help me create the right
sql.
Explanation:
Every activity have more activitydetail. ex activity 500
aID act.detailID statusID datetime
c)500 1000 20 2008-04-28
500 1001 19 2008-04-28
500 1002 10 2008-04-28
a) 500 1003 26 2008-05-02
b) 500 1004 19 2008-05-15
500 1005 21 2008-05-15
This sql will output activities over 9 days from a) to b)
I want from c) to b)
from row1
to the row after status 26
Here is my sql:
SELECT
T3.ActivityID,
T4.TimeStamp AS FirstDateTimeStamp,
T5.TimeStamp AS NextDateTimeStamp,
T4.QueueName AS Technican,
DATEDIFF(dd, T4.TimeStamp, T5.TimeStamp) AS Days
FROM
ActivityDetailsAll AS T4 INNER JOIN
(SELECT
T1.ActivityID,
MIN(T2.ActivityDetailID) AS FirstActivityDetailID,
MIN(T1.ActivityDetailID) AS NextActivityDetailID
FROM
ActivityDetailsAll AS T1 INNER JOIN
(SELECT
ActivityID,
MAX(ActivityDetailID) AS ActivityDetailID
FROM
ActivityDetailsAll
WHERE
(TimeStamp BETWEEN '2008-05-01' AND '2008-05-31') AND
(StatusID = 26)
GROUP BY
ActivityID, ActivityDetailID) AS T2 ON T1.ActivityID =
T2.ActivityID
AND T1.ActivityDetailID > T2.ActivityDetailID
GROUP BY T1.ActivityID) AS T3 ON T3.FirstActivityDetailID
= T4.ActivityDetailID
INNER JOIN
ActivityDetails AS T5 ON T3.NextActivityDetailID =
T5.ActivityDetailID
WHERE
(DATEDIFF(dd, T4.TimeStamp, T5.TimeStamp) > 9)
In other words
a) 20
b) 19
c) 10
d) 26
e) 19
f) 21
want a) to e) (e is just after statusid 26 )
/henrik


|