Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Oborotno-saldovaya vedemost [D6, D7, Paradox]


Страницы:   1 2

spogi ©   (2006-03-08 20:27:00) 

Zdrasti..
Xocu sozdat ob.-saldovaya vedemost.
primerno:
01.01.01 | +15
05.01.01 | -7
08.01.01 | +22
11.01.01 | +17
22.01.01 | -11
31.01.01 | +28
--------------
 itogi:    | 64    (Eto ya delayu s pomoshyu Sum.QRExpr)

A vot kak polucit:

s 10.01.01 po 20.01.01

Do perioda | V period | V konec perioda
--------------------------------------
    30            +17             47

Pasibki...


msguns   (2006-03-15 11:28:00) [1]

>atruhin ©   (15.03.06 10:46) [29]

Можно все, что ты сказал, выразить одним словом.


atruhin   (2006-03-15 10:46:00) [2]

>>Сказать, для чего и кому нужна такая "убывающе-прибывающая" картина ?
Догадываюсь, что скажешь! :)
На самом деле в ресторанном учете не все так просто, там неизбежны постоянные пересортицы, ошибки ввода и т.д. Приходят документы, написано балык 10 кг, (копченый балык(деликатес), балык с.м. и т.д.) не понятно, начинают догонять, выяснять. В барах с винами та же пробемма снабженец ввел одно, в калькуляции поменяли название, бармен выбил другое по цене. Поэтому приходится поднимать движение товаров сверять, местами перепроводить :).


msguns   (2006-03-15 09:56:00) [3]

>atruhin ©   (15.03.06 05:55) [26]

Сказать, для чего и кому нужна такая "убывающе-прибывающая" картина ?


Danilka   (2006-03-15 09:46:00) [4]

[25] программист   (15.03.06 00:13)
Аналитические функции это чисто орокловая фича, а не стандарт sql, поэтому в других его нет.
По-крайней мере в микрософте точно нет, про сайбейс незнаю, не видел его.


atruhin   (2006-03-15 05:55:00) [5]

>>Видимо, кто-то очень "вумный" заказал ему подобый шедевр, в котором "будет все"
А что Вам в этом шедевр не нравится? У  нас его называют документ движения товара. Т.е. в одном списке получаем остаток на начало периода, и список всех документов изменяющих остаток, на сколько изменился, какой стал. В системах ресторанского учета - один из самых часто используемых документов.


программист   (2006-03-15 00:13:00) [6]

> [23] Danilka ©   (14.03.06 14:08)

И такое работает? мдя.. а не в оракле такой самолет не летает???? типа в микрософте, сайбейзе?


msguns   (2006-03-14 14:38:00) [7]

Вообще-то это похоже на журнал регистрации документов, но лишь слегка. В бухгалтерии, насколько знаю, подобного "стандарта" нет. Есть складские документы (оборотная, сальдовая, накопительно-сальдовая, картотека с движением) и бухгалтерские (журналы, ордера, ведомости, шахматки). Но все это не то..
У него какой-то суррогат. Видимо, кто-то очень "вумный" заказал ему подобый шедевр, в котором "будет все"


Danilka   (2006-03-14 14:08:00) [8]

[21] paul_k ©   (14.03.06 13:25)
SELECT id, tn, sum(s) over(order by id)-s pref_xxx, s, sum(s) over(order by id) xxx FROM test2
:)

[22] msguns ©   (14.03.06 13:30)
Вобщем, да. Тогда как его обозвать? :)


msguns   (2006-03-14 13:30:00) [9]

>Danilka ©   (14.03.06 12:36) [20]
>То, что просит автор, бухгалтера говорят, называецца "Журнал-ордер".

нет. Журнал ордер - это сводныйдокумент. Он же просит во-первых, подробных, во-вторых, накопительный


paul_k   (2006-03-14 13:25:00) [10]

понял то есть сумма идет нарастающим итогом. Отлично
это понятно вполне. а вот чтоб в строке было

   SumIn                     |   OpSum          |    SumOut
__________________________________________________________________
<SumOut из предидущей строки> | <сумма операции> | <SumIn+OpSum>



от это не понятно, блин..


Danilka   (2006-03-14 12:36:00) [11]

[19] paul_k ©   (14.03.06 11:03)
> так то что я привел в примере и есть оборотно-сальдовая:)
> или я опять что-то спутал?

В каком примере? То, что просит автор, бухгалтера говорят, называецца "Журнал-ордер".


> а, кстати, в оракле как запрос выглядеть будет?

С помощью аналитических функций. Например, sum может выступать как аналитическая функция.
Самый простейший вариант:

CREATE TABLE test2
   (id  NUMBER(*,0),
   tn   VARCHAR2(100),
   s    NUMBER(15,2))
/
INSERT INTO test2
VALUES (1,'ttt',10)
/
INSERT INTO test2
VALUES (2,'ttr',12)
/
INSERT INTO test2
VALUES (3,'tr',5)
/
INSERT INTO test2
VALUES (4,'dd',8)
/

запрос, один из вариантов:
SELECT id, tn, s, sum(s) over(order by id) xxx FROM test2

возвращает:
ID TN S XXX
------------
1 ttt 10 10
2 ttr 12 22
3 tr 5 27
4 dd 8 35


paul_k   (2006-03-14 11:03:00) [12]

> [17] Danilka ©   (14.03.06 10:32)

так то что я привел в примере и есть оборотно-сальдовая:) или я опять что-то спутал?

а, кстати, в оракле как запрос выглядеть будет? любопытно, однако.. а то вдруг что-то подобное можно и не тока в оракле изобразить.


Danilka   (2006-03-14 10:39:00) [13]

а по теме тоже можно одним запросом, без всяких ХП и врем.переменных.
Но в орокле. :)
а как для парадокса расписано ишшо в [1].


Danilka   (2006-03-14 10:32:00) [14]

[16] paul_k ©   (14.03.06 10:26)
ой, блин, я для оборотно-сальдовой ведомости, согласно теме, запрос написал.. :)
а у автора савсэм не она.


paul_k   (2006-03-14 10:26:00) [15]

> [14] Danilka ©   (14.03.06 10:02)

точно?? проверял? работает? нарастающий итог дает по входящим/исходящим остаткам?
не может быть...
по каждой записи должено идти изменение. то есть если бы автор взял период до 01/02/01 то должно было быть

> 01.01.01 | +15
> 05.01.01 | -7
> 08.01.01 | +22
> 11.01.01 | +17
> 22.01.01 | -11
> 31.01.01 | +28
> --------------
> itogi:    | 64    (Eto ya delayu s pomoshyu Sum.QRExpr)
>
>

> s 10.01.01 po 20.01.01
>
> Do perioda | V period | V konec perioda
> --------------------------------------
>    30            +17             47

    47            -11             36
    36            +28             64
----------------------------------------
и таки в один запрос? Разъясни как детальнее плиз


Danilka   (2006-03-14 10:16:00) [16]

гы. then / when местами перепутал :))


Danilka   (2006-03-14 10:02:00) [17]

в local sql есть Case или нет? просто не помню. если есть, то, кажись, можно и одним запросом.
но с каждым месяцем формировацца будет медленнее и медленнее.
что-то типа:
select xxx,
 sum(case then move_date < :begin_date when amount else 0 end) begin_amount,
 sum(case then ((move_date between :begin_date and :end_date) and (amount>0)) when amount else 0 end) amount_plus,
 sum(case then ((move_date between :begin_date and :end_date) and (amount<0)) when -amount else 0 end) amount_minus,
 sum(amount) end_damount
from my_table
group by xxx


paul_k   (2006-03-14 08:42:00) [18]

> [11] vovnuke ©   (13.03.06 17:04)
> ну уж не от трепа, а в крайнем случае от не такого как вы
> понимания задачи,
> Откуда взялась цифра 30 в вопросе, если алгоритм такой как
> вы написали?


> s 10.01.01 po 20.01.01
>
> Do perioda | V period | V konec perioda
> --------------------------------------
>    30            +17             47

30 - входящий остаток (+15-17+22) - все что было ДО 10-го числа
с 10-го по 20-е одна операция, на +17 единиц учета, что и отражено в примере


msguns   (2006-03-13 17:08:00) [19]

>vovnuke ©   (13.03.06 17:04) [11]

Стандарт оборотной сальдовки таков:

Наименование товара  Остаток на начало  Приход  Расход  Остаток на конец

Движение дается суммарно.

То же, что подразумевает автор, называется накопительной ведомостью и имеет несколько другой вид. Что, очевидно, он не понимает


vovnuke   (2006-03-13 17:04:00) [20]

ну уж не от трепа, а в крайнем случае от не такого как вы понимания задачи,
Откуда взялась цифра 30в вопросе, если алгоритм такой как вы написали?
И вообще что надо получить если будет в период входить несколько дат из базы?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо