powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Поиск неоплаченных заказов
4 сообщений из 4, страница 1 из 1
Поиск неоплаченных заказов
    #40005624
AndreyJordan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 2 таблицы :
1) Orders
id data id_customer suma

2) Pays
id data id_customer suma

Оплаты происходят не строго по накладным, например:

Orders
1 01.10.2020 1 150.00
2 03.10.2020 1 400.00
3 04.10.2020 1 500.00
4 02.10.2020 2 1000.00

Pays
1 02.10.2020 1 500.00
2 03.10.2020 2 900.00

Нужен запрос, который покажет, что неоплаченными у нас остались заказы №:
2 на остаточную сумму 50.00, полностью заказ №3 и частично заказ №4 на 100.00.
...
Рейтинг: 0 / 0
Поиск неоплаченных заказов
    #40005627
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я просто обязан это процитировать
"А еще - попытка применить "базарный метод учета". Он состоит в том, что в записной книжке вы помечаете, что продали клиенту и почем. Потом отмечаете на против каждой позиции, за что он заплатил. При этом делаете это очень аккуратно, например, позавчера продали винт, вчера клаву, сегодня мышу. Он, гад, должен еще за системник, но говорит, что сегодня я заплачу половину за мышу, четверть за клаву, а за винт пока буду должен. Вы все это аккуратно отмечаете в своей записной книжке и выводите "прибыль". Прибыль по каждой позиции, по каждому дню. Я однажды столкнулся с такими методами учета на одном серьезном предприятии, управляющим на котором стал человек, ранее занимавшийся торговлей на рынке. Он все вытается наладить такой учет, называя его управленческим.

На самом деле, если все разложить по полочкам (всего две независимые полочки) - определение количества и стоимости оказанных услуг и взаиморасчеты - то все становится очень просто. Результаты расчета услуг попадают в дебет взаиморасчетов. А во взаиморасчетах - чистая бухгалтерия. "
https://www.sql.ru/forum/284065-2/buhgalterskiy-blok?hl=???????? ????
...
Рейтинг: 0 / 0
Поиск неоплаченных заказов
    #40005636
Агрох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С одной стороны присоединяюсь к комментатору выше.

С другой стороны мне было интересно решить задачку:
Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
WITH Orders AS (
SELECT 1 id, CAST('01.10.2020' AS date) dt, 1 AS id_cust, 150 AS summ
UNION ALL
SELECT 2 id, CAST('03.10.2020' AS date) dt, 1 AS id_cust, 400 AS summ
UNION ALL
SELECT 3 id, CAST('04.10.2020' AS date) dt, 1 AS id_cust, 500 AS summ
UNION ALL
SELECT 4 id, CAST('02.10.2020' AS date) dt, 2 AS id_cust, 1000 AS summ
), Pays AS (
SELECT 1 id, CAST('02.10.2020' AS date) dt, 1 AS id_cust, 500 AS summ
UNION ALL
SELECT 2 id, CAST('03.10.2020' AS date) dt, 2 AS id_cust, 900 AS summ
), Pays_All AS (
SELECT id_cust, sum(summ) AS summ FROM Pays GROUP BY id_cust
), Orders_1 AS (
SELECT id, dt, id_cust, summ, row_number() OVER(PARTITION BY id_cust ORDER BY dt) AS rn FROM Orders
), R0 AS (
SELECT O.id, O.dt, O.id_cust, O.summ, P.summ - O.summ AS Ost, rn
FROM Orders_1 AS O  
 	LEFT JOIN Pays_All AS P
  		ON P.id_cust = O.id_cust
WHERE rn = 1
UNION ALL
SELECT O.id, O.dt, O.id_cust, O.summ, R0.Ost - O.summ AS Ost, O.rn
FROM Orders_1 AS O
  INNER JOIN R0
  	ON R0.id_cust = O.id_cust
  		and R0.rn + 1 = O.rn
) SELECT id, dt, id_cust, summ,
	case
    	when Ost >= 0 then 0
        when ABS(Ost) <= summ then ABS(Ost)
        else summ
    end AS dolg
FROM R0 
ORDER BY id
...
Рейтинг: 0 / 0
Поиск неоплаченных заказов
    #40005640
AndreyJordan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полностью согласен с Вашими замечаниями по поводу "базарного учета". Побороть "базарников" не могу. Спасибо Агрох за помощь, буду пробовать
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Поиск неоплаченных заказов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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