powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сложный запрос
14 сообщений из 64, страница 3 из 3
Сложный запрос
    #39519662
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sidiscom> данный запрос работает

И? Что в нём не устраивает? Скорость, результат?
Аналогичные вопросы по приведённым выше двум запросам.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сложный запрос
    #39519696
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sidiscomOPA
(операции в течении дня, что-то покупается, что-то продается на кассах)
datsdskkfr01.09.2017 10 0A1
sd- сумма дебет
sk - сумма кредит

BAL
(таблица сальдо кассы, заполняется процедурой на основании документа OPA)
kfrdatsisdskA101.09.2017 10 100

необходимо вывести операции за период с входящим и исходящим остатком магазина
(01.09.2017 - 02.09.2017 для магазина P1)
datsisdsksvkfr01.09.2017 30 1000A1
Присмотрелся повнимательнее к данным. Как получается 30 ?
...
Рейтинг: 0 / 0
Сложный запрос
    #39519715
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

тут, по-моему вообще клиника. Посмотрите запрос ТС. BAL - это некие итого по OPA. А в запросе основная таблица OPA, а суммирование по BAL. Есть ещё подозрение, что схема данных совсем другая нежели описано.
...
Рейтинг: 0 / 0
Сложный запрос
    #39519724
sidiscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов РустамsidiscomOPA
(операции в течении дня, что-то покупается, что-то продается на кассах)
datsdskkfr01.09.2017 10 0A1
sd- сумма дебет
sk - сумма кредит

BAL
(таблица сальдо кассы, заполняется процедурой на основании документа OPA)
kfrdatsisdskA101.09.2017 10 100

необходимо вывести операции за период с входящим и исходящим остатком магазина
(01.09.2017 - 02.09.2017 для магазина P1)
datsisdsksvkfr01.09.2017 30 1000A1
Присмотрелся повнимательнее к данным. Как получается 30 ?

datsdskkfr01.09.2017 20 0A2
В этот день была еще одна проводка на кассе А2 на сумму 20 руб. Общий итог для магазина Р1 у которого кассы (А1 и А2) будет 30 руб
...
Рейтинг: 0 / 0
Сложный запрос
    #39519726
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI> Посмотрите запрос ТС.

Запросы ТС - это ладно, ошибиться нубу немудрено.
Но данные исходные и желаемые-то он должен
правильно привести хотя бы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сложный запрос
    #39519727
sidiscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KreatorXXIГаджимурадов Рустам,

тут, по-моему вообще клиника. Посмотрите запрос ТС. BAL - это некие итого по OPA. А в запросе основная таблица OPA, а суммирование по BAL. Есть ещё подозрение, что схема данных совсем другая нежели описано.

Это делать удобней, так как в таблице BAL кроме исходящего остатка на конец дня, уже есть общие суммы по дебету и по кредиту для кассы (А1 и А2). Получается надо просто сложить данные двух строк (для разных касс) принадлежащих одному магазину Р1
...
Рейтинг: 0 / 0
Сложный запрос
    #39519729
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sidiscom(01.09.2017 - 02.09.2017 для магазина P1)
dat si sd sk sv kfr
01.09.2017 30 10 0 0 A1

dat sd sk kfr
01.09.2017 20 0 A2

В этот день была еще одна проводка на кассе А2 на сумму 20 руб. Общий итог для магазина Р1 у которого кассы (А1 и А2) будет 30 руб

Чушь какая-то... ОК, допустим, что это нарастающий итог
по магазину, типа OVER и к кассе в строках не относится.
Тогда что со следующими двумя строками:

BAL
(таблица сальдо кассы, заполняется процедурой на основании документа OPA)
kfrdatsisdskA202.09.2017 5 015

необходимо вывести операции за период с входящим и исходящим остатком магазина
(01.09.2017 - 02.09.2017 для магазина P1)
datsisdsksvkfr02.09.2017150 15 30 A2

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сложный запрос
    #39519730
sidiscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов РустамKreatorXXI> Посмотрите запрос ТС.

Запросы ТС - это ладно, ошибиться нубу немудрено.
Но данные исходные и желаемые-то он должен
правильно привести хотя бы.


я вроде объяснил почему такая сумма вышла. Перепроверил, цифры правильный
...
Рейтинг: 0 / 0
Сложный запрос
    #39519741
sidiscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустамsidiscom(01.09.2017 - 02.09.2017 для магазина P1)
dat si sd sk sv kfr
01.09.2017 30 10 0 0 A1

dat sd sk kfr
01.09.2017 20 0 A2

В этот день была еще одна проводка на кассе А2 на сумму 20 руб. Общий итог для магазина Р1 у которого кассы (А1 и А2) будет 30 руб

Чушь какая-то... ОК, допустим, что это нарастающий итог
по магазину, типа OVER и к кассе в строках не относится.
Тогда что со следующими двумя строками:

BAL
(таблица сальдо кассы, заполняется процедурой на основании документа OPA)
kfrdatsisdskA202.09.2017 5 015

необходимо вывести операции за период с входящим и исходящим остатком магазина
(01.09.2017 - 02.09.2017 для магазина P1)
datsisdsksvkfr02.09.2017150 15 30 A2



В кассе А2 была операция покупки на 20 рублей (01.09.2017) и продажа на 15 рублей (02.09.2017)
datsdskkfr01.09.2017200A202.09.2017015A2

В таблице BAL (итоги формируются: исходящий остаток, сумма дебета и сумма кредита ) в разрезе даты и кассы
kfrdatsisdskA201.09.201720200A202.09.20175015
итог на вечер 02.09.2017 остаток в кассе А2 = 5 рублей

а по магазину итог это как исходящий остаток кассы А1 + А2
остаток А1 = 10 руб (на 01.09.2017) так как 02.09.2017 операций не было то и на 02.09.2017 остаток равен 10 руб
Итого исходящий остаток в магазине Р1 = 10+5 = 15
а так как
необходимо вывести операции за период с входящим и исходящим остатком магазина (не кассы)
(01.09.2017 - 02.09.2017 для магазина P1)
datsisdsksvkfr02.09.20171501530A2[/quot]

т.е. OPA для операции
datsdskkfr02.09.2017015A2
добавив столбец исходящего остатка магазина и входящего остатка магазина, получим
datsdskkfrsisv02.09.2017015A21530
...
Рейтинг: 0 / 0
Сложный запрос
    #39519790
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sidiscom,

А может быть в таблице OPA сто записей для одной даты и одной кассы?
...
Рейтинг: 0 / 0
Сложный запрос
    #39520214
sidiscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, может (это операции в течении дня)
...
Рейтинг: 0 / 0
Сложный запрос
    #39520272
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sidiscom,

А в Вашем последненаписанном запросе никакого суммирования по OPA нет. В переводе - Ваш запрос не удовлетворяет Вашим же требованиям.
...
Рейтинг: 0 / 0
Сложный запрос
    #39520281
sidiscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KreatorXXIsidiscom,

А в Вашем последненаписанном запросе никакого суммирования по OPA нет. В переводе - Ваш запрос не удовлетворяет Вашим же требованиям.

мне суммирование по OPA не нужно, так как обороты по дебету и кредиту вычисляются в BAL
...
Рейтинг: 0 / 0
Сложный запрос
    #39524847
sidiscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день
Всем большое спасибо, что помогли советами
остановился на таком решении:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT o.dat,o.sd,o.sk,
(SELECT sum(b.si) FROM bal b ......) as si,
(SELECT (sum(b.si)-sum(b.sd)+sum(b.sk)) FROM bal b .....) as sv
FROM opa o
JOIN kfr k ON k.kfr=o.kfr 
WHERE 
k.pps = ''
AND 
o.dat between "" and ""



Тему можно закрывать
...
Рейтинг: 0 / 0
14 сообщений из 64, страница 3 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сложный запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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