02.03.2006, 17:45 | #1 |
Axapta Retail User
|
Почти одинаковые запросы возвращают разные данные
Понадобилось сделать легкий (казалось бы) отчетик - смысл которого вывести количество продаж по дням месяца (сгруппировать по дню а затем по категории).
Привожу результаты запроса из мониторинга 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. |
|