Понадобилось сделать легкий (казалось бы) отчетик - смысл которого вывести количество продаж по дням месяца (сгруппировать по дню а затем по категории).
Привожу результаты запроса из мониторинга SQL запросов:
SELECT COUNT(A.SUMSALE),A.CREATEDDATE,B.CATEGORY FROM SALESTABLE A,MYTABLE B WHERE ((A.DATAAREAID='tst') AND (A.CREATEDDATE={ts '2006-02-04 00:00:00.000'})) AND ((B.DATAAREAID='tst') AND (A.SALESID=B.SALESID))
GROUP BY A.CREATEDDATE,B.CATEGORY
ORDER BY A.CREATEDDATE,B.CATEGORY OPTION(FAST 5)
Не возвращает нужную строку
SELECT COUNT(A.SUMSALE),A.CREATEDDATE,B.CATEGORY FROM SALESTABLE A,MYTABLE B WHERE ((A.DATAAREAID='tst') AND (A.CREATEDDATE={ts '2006-02-04 00:00:00.000'})) AND ((B.DATAAREAID='tst') AND ((B.CATEGORY='25') AND (A.SALESID=B.SALESID)))
GROUP BY A.CREATEDDATE,B.CATEGORY
ORDER BY A.CREATEDDATE,B.CATEGORY OPTION(FAST 5)
Есть нужная строка
Вся разница запросов в том, что во втором варианте явно указан фильтрующий признак B.CATEGORY='25' - и соотвествующая строка появляется в отчете.
Без фильтра по B.CATEGORY возвращаются не все строки (в частности нет 25).
C чем такое поведение может быть связано?!
Upd: Так. Создала job с запросом, который приведен первым - он отработал правильно. Значит дело в отчете?!
Что там может мешать?! Простой отчет с автоматическим дизайном и одним body.