2011-01-05 3 views
0

Я имею таблицу, как это:SQL запросов для подсчета через определенный период

------------------------------- 
| NrOfVisitors | Year | Month | 
------------------------------- 
| 320   | 2009 | 1  | 
------------------------------- 
| 300   | 2009 | 2  | 
------------------------------- 
| 150   | 2010 | 1  | 
------------------------------- 
| 100   | 2010 | 2  | 
------------------------------- 

Теперь я хочу, чтобы подсчитать посетителей недо 1-й месяц 2010 Когда я говорю:

SELECT SUM(NrOfVisitors) As TotalVisitors FROM VisitorTable WHERE YEAR <= 2010 AND Month <= 1 

Тогда я не получаю количество посетителей, потому что тогда он не учитывает посетителей 2009-го месяца 2. Поэтому мне не хватает 300 посетителей с этим запросом. Так что мне нужно, это запрос для подсчета NrOfVisitors нед 2010 месяц 1

Кто может помочь мне с этим/

Заранее спасибо!

ответ

0

В этом случае вы можете просто использовать OR

WHERE YEAR <= 2010 OR MONTH <= 1 

Чтобы быть более общим что-то вроде

WHERE YEAR < 2010 OR (YEAR = 2010 AND MONTH <=1) 
+0

Это сделал трюк ... Глупо, я не думаю об этом ... Но thx: D – CyberK

+0

'ГДЕ ГОД <= 2010 ИЛИ МЕСЯЦ <= 1' будет соответствовать январю 2011 года (и 2012, ...), что, вероятно, не соответствует OP. – eumiro

+0

@eumiro. Именно поэтому я дал более общий пример. –

1

Попробуйте это:

SELECT SUM(NrOfVisitors) As TotalVisitors 
FROM VisitorTable 
WHERE Year * 12 + Month <= 2010 * 12 + 1 
0

Просто удалите: и месяц < = 1? Edit: также сделать: WHERE YEAR < = 2010 к: ГОД < где 2010

Это должно работать?

0

Если это не будет

SELECT SUM(NrOfVisitors) As TotalVisitors FROM VisitorTable WHERE YEAR <= 2010 AND Month >= 1 ?

Я только что изменил Month <= 1 к Month >= 1 потому что, ну, 2> 1.

Таким образом, если у вас есть несколько месяцев, и если вы не хотите, чтобы они посчитали, что вы можете просто изменить это ограничение для отражения которых месяцев, которые вы хотите подсчитать.

0

SELECT SUM (NrOfVisitors) Как TotalVisitors ИЗ VisitorTable ГДЕ ГОД < = 2010 ИЛИ (YEAR = 2010 И МЕСЯЦ = 1)

Смежные вопросы