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 FirstDateTimeSt amp,
T5.TimeStamp AS NextDateTimeSta mp,
T4.QueueName AS Technican,
DATEDIFF(dd, T4.TimeStamp, T5.TimeStamp) AS Days
FROM
ActivityDetails All AS T4 INNER JOIN
(SELECT
T1.ActivityID,
MIN(T2.Activity DetailID) AS FirstActivityDe tailID,
MIN(T1.Activity DetailID) AS NextActivityDet ailID
FROM
ActivityDetails All AS T1 INNER JOIN
(SELECT
ActivityID,
MAX(ActivityDet ailID) AS ActivityDetailI D
FROM
ActivityDetails All
WHERE
(TimeStamp BETWEEN '2008-05-01' AND '2008-05-31') AND
(StatusID = 26)
GROUP BY
ActivityID, ActivityDetailI D) AS T2 ON T1.ActivityID =
T2.ActivityID
AND T1.ActivityDeta ilID T2.ActivityDeta ilID
GROUP BY T1.ActivityID) AS T3 ON T3.FirstActivit yDetailID
= T4.ActivityDeta ilID
INNER JOIN
ActivityDetails AS T5 ON T3.NextActivity DetailID =
T5.ActivityDeta ilID
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
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 FirstDateTimeSt amp,
T5.TimeStamp AS NextDateTimeSta mp,
T4.QueueName AS Technican,
DATEDIFF(dd, T4.TimeStamp, T5.TimeStamp) AS Days
FROM
ActivityDetails All AS T4 INNER JOIN
(SELECT
T1.ActivityID,
MIN(T2.Activity DetailID) AS FirstActivityDe tailID,
MIN(T1.Activity DetailID) AS NextActivityDet ailID
FROM
ActivityDetails All AS T1 INNER JOIN
(SELECT
ActivityID,
MAX(ActivityDet ailID) AS ActivityDetailI D
FROM
ActivityDetails All
WHERE
(TimeStamp BETWEEN '2008-05-01' AND '2008-05-31') AND
(StatusID = 26)
GROUP BY
ActivityID, ActivityDetailI D) AS T2 ON T1.ActivityID =
T2.ActivityID
AND T1.ActivityDeta ilID T2.ActivityDeta ilID
GROUP BY T1.ActivityID) AS T3 ON T3.FirstActivit yDetailID
= T4.ActivityDeta ilID
INNER JOIN
ActivityDetails AS T5 ON T3.NextActivity DetailID =
T5.ActivityDeta ilID
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
Comment