powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Непонятное мне поведение запроса
6 сообщений из 6, страница 1 из 1
Непонятное мне поведение запроса
    #39783314
Alexey Tarasenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть БД выгрузки с Фронтола в 1С Рарус ТКПТ. В ней две таблицы CURRESTS и CASHSAIL.
В каждой таблице по две кассы за которые отвечает столбец CASHNUMBER.
Может принимать значение 1 или 3. Т.е. первая или третья касса.
Следующий запрос не хочет возвращать данные по кассе 3.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
USE CashLakomka
SELECT
    CURRESTS.CASHNUMBER AS CASHNUMBER,
    CURRESTS.ZNUMBER AS ZNUMBER,
    CURRESTS.[SDATE] AS SDATE,
    ISNULL(CURRESTS.[STIME],0) AS STIME,
    Sum(CASHSAIL.TOTALRUB*CASE WHEN (CASHSAIL.OPERATION=0 OR CASHSAIL.OPERATION=2 OR CASHSAIL.OPERATION=4) AND CASHSAIL.QUANTITY>0 THEN -1 ELSE 1 END) AS SUMMA
FROM 
    CURRESTS AS CURRESTS
    INNER JOIN CASHSAIL
    ON ISNULL(CURRESTS.SDATEZ,0)=ISNULL(CASHSAIL.SDATEZ,0) AND (CASHSAIL.CASHNUMBER=CURRESTS.CASHNUMBER) AND (CASHSAIL.ZNUMBER=CURRESTS.ZNUMBER) AND (CASHSAIL.USINGINDEX=1) AND (CASHSAIL.SHOPINDEX=CURRESTS.SHOPINDEX) 
WHERE 
    CURRESTS.CASHNUMBER IN (1,3) AND (CURRESTS.SDATE BETWEEN CONVERT(datetime, '04/3/2019 00:00:00', 104) AND CONVERT(datetime, '06/3/2019 00:00:00', 104)) 
GROUP BY 
    CURRESTS.[SDATE], 
    CURRESTS.[STIME], 
    CURRESTS.CASHNUMBER,
    CURRESTS.ZNUMBER
HAVING 
    (Sum(CASHSAIL.TOTALRUB)<>0)
ORDER BY 
    CURRESTS.[SDATE], 
    CURRESTS.[STIME], 
    CURRESTS.CASHNUMBER,
    CURRESTS.ZNUMBER



Результат запроса на картинке
...
Рейтинг: 0 / 0
Непонятное мне поведение запроса
    #39783316
Alexey Tarasenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А следующий запрос возвращает данные по 3 кассе.
Запрос без первых трех подусловий в условии объединения таблиц. А раньше без первых двух возвращал.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
USE CashLakomka
SELECT
    CURRESTS.CASHNUMBER AS CASHNUMBER,
    CURRESTS.ZNUMBER AS ZNUMBER,
    CURRESTS.[SDATE] AS SDATE,
    ISNULL(CURRESTS.[STIME],0) AS STIME,
    Sum(CASHSAIL.TOTALRUB*CASE WHEN (CASHSAIL.OPERATION=0 OR CASHSAIL.OPERATION=2 OR CASHSAIL.OPERATION=4) AND CASHSAIL.QUANTITY>0 THEN -1 ELSE 1 END) AS SUMMA
FROM 
    CURRESTS AS CURRESTS
    INNER JOIN CASHSAIL
    ON 
(CASHSAIL.ZNUMBER=CURRESTS.ZNUMBER) AND (CASHSAIL.USINGINDEX=1) AND (CASHSAIL.SHOPINDEX=CURRESTS.SHOPINDEX) 
WHERE 
    CURRESTS.CASHNUMBER IN (1,3) AND (CURRESTS.SDATE BETWEEN CONVERT(datetime, '04/3/2019 00:00:00', 104) AND CONVERT(datetime, '06/3/2019 00:00:00', 104)) 
GROUP BY 
    CURRESTS.[SDATE], 
    CURRESTS.[STIME], 
    CURRESTS.CASHNUMBER,
    CURRESTS.ZNUMBER
HAVING 
    (Sum(CASHSAIL.TOTALRUB)<>0)
ORDER BY 
    CURRESTS.[SDATE], 
    CURRESTS.[STIME], 
    CURRESTS.CASHNUMBER,
    CURRESTS.ZNUMBER
...
Рейтинг: 0 / 0
Непонятное мне поведение запроса
    #39783318
Alexey Tarasenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу понять что не так с данными БД. Помогите разобраться. На других БД всё нормально.
...
Рейтинг: 0 / 0
Непонятное мне поведение запроса
    #39783320
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Tarasenko,

Может дело в этом (CASHSAIL.USINGINDEX=1) ?
...
Рейтинг: 0 / 0
Непонятное мне поведение запроса
    #39783348
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TarasenkoЕсть БД выгрузки с Фронтола в 1С Рарус ТКПТ. В ней две таблицы CURRESTS и CASHSAIL.
В каждой таблице по две кассы за которые отвечает столбец CASHNUMBER.
Может принимать значение 1 или 3. Т.е. первая или третья касса.
Следующий запрос не хочет возвращать данные по кассе 3.Для отладки "почему запрос не возвращает" сначала уберите агрегирование с GROUP BY и HAVING

Потом закомментируйте условия, кроме CURRESTS.CASHNUMBER IN (1,3)

Потом заменяйте INNER JOIN на LEFT JOIN

На каждом шаге смотрите, что возвращает запрос, и смотрите (выведите) поля, условия по которым вы временно убрали.

Тогда отладить будет легко.

Тут вам, конечно, не помогут, у нас же нет ваших таблиц и данных, иначе бы тут кто нибудь быстренько сделал то, что я описал, и нашёл причину.
...
Рейтинг: 0 / 0
Непонятное мне поведение запроса
    #39784336
Alexey Tarasenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел ВоронцовAlexey Tarasenko,

Может дело в этом (CASHSAIL.USINGINDEX=1) ?

Спасибо. Дело было в действительности в USINGINDEX.
Это номер фискального регистратора и он на новой (3) кассе был равен 0.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Непонятное мне поведение запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]