У меня есть стол с колонками: MONTH
, YEAR
, PROJECT_ID
, STATUS
.Простой запрос SQL-запроса SQL (подсчет изменений значений в столбце)
Статус может быть:
- R (красный).
- A (янтарь).
- G (зеленый).
- N (не началось).
- C (завершено).
Я хочу знать, как много проектов, реализованных в данном месяце, т.е.:
where STATUS changed from anything that is NOT C to C;
Это звучит просто ...!
Это легко найти, когда любой данный проект завершается:
SELECT TOP 1 MONTH,YEAR,PROJECT_ID FROM Table WHERE PROJECT_ID=9236 AND RAG='C'
ORDER BY YEAR ASC, MONTH ASC
Но учитывая year = 2011
и month = 8
(к примеру), я понятия не имею, как найти число проектов, которые имели status='C'
впервые этот месяц. Есть идеи?
Edit: проекты по-прежнему включены в ряд с status='C'
после того, как полный, так что я не могу просто посчитать Cs, как будет возвращать количество проектов, реализованных в этом и предыдущие месяцы (отсюда хронологический порядок и выберите верхнюю часть 1).
Выборочные данные по 10/2010 до 01/2011 месяцев:
Month | Year | Project | Status
-------------------------------
10 | 2010 | A | G
11 | 2010 | A | C
12 | 2010 | A | C
1 | 2011 | A | C
10 | 2010 | B | R
11 | 2010 | B | R
12 | 2010 | B | R
1 | 2011 | B | R
10 | 2010 | C | G
11 | 2010 | C | G
12 | 2010 | C | G
1 | 2011 | C | C
10 | 2010 | D | A
11 | 2010 | D | C
12 | 2010 | D | C
1 | 2011 | D | C
^Проекты А и D было завершено в 11/2010. Проект B не изменился до завершения в течение любого из четырех месяцев. Проект C был завершен в 01/2011 году. {Месяц, Год, Проект} - первичный ключ.
Так, входы и выходы будут:
10/2010 => 0
11/2010 => 2 (because of A and D)
12/2010 => 0
1/2011 => 1 (because of C)
Что вы подразумеваете под ** в первый раз в этом месяце ** ??, и почему вы просто не запрашивали: 'select count (*) from tablename, где год = 2011 и месяц = 8, а статус = 'C'' –
Должно читать: ... у которого был статус = «C» в первый раз, то есть проект завершен в этом месяце. Ваш запрос дал бы мне количество завершенных проектов, но не количество проектов, которые завершили этот месяц. Проекты включаются в будущие месяцы даже после завершения, причем статус по-прежнему равен «C». Извините, я многое мог бы рассказать! – Chris
Не могли бы вы предоставить образец данных (не обязательно быть реальными данными) и ожидаемый результат? Это сделает ваш вопрос более ясным. – BartekR