Last modified by Nefedenkova Viktoria on 2021/03/19 16:33

Show last authors
1 ^^[[Файл>>http://xwiki.una.md/bin/download/UNA/UNA-1C_integration/Maintablefieldsdescription.txt||rel="__blank" title="Описание основных полей для базовых таблиц продаж в кассовой схеме"]] с описанием основных полей для базовых таблиц продаж в кассовой схеме.^^
2
3 **Как выполнить разделение данных о продажах по кассам?**
4
5 Запрос SELECT * from [[tmdb_comenz>>tmdb_comenz||rel="__blank" title="tmdb_comenz"]] - выводит "шапку" чека, где:
6
7 ~1. tmdb_sold - смены
8 Name Type Nullable Default Comments
9 NRDOC INTEGER Электронный номер смены
10 ID_CASA INTEGER Код кассы из справочника O,CASA
11
12
13 2. tmdb_comenz - чеки
14 NRDOC NUMBER(10) Y Электронный номер смены (для связи с tmdb_sold.nrdoc)
15
16 (% style="font-size: 14px; font-family: Consolas; background-color:#fbfdff" %)
17 select d.* ,
18 (% style="font-size: 14px; font-family: Consolas; background-color:#fbfdff" %)
19 (select s.id_casa from tmdb_sold s where s.nrdoc=d.nrdoc and rownum=1) id_casa
20 from tmdb_comenz d
21 (% style="font-size: 14px; font-family: Consolas; background-color:#fbfdff" %)
22 and rownum=1 -> and s.sid = d.sid - если для архивной кассовой схемы
23
24 sid + nrdoc - это первичный ключ в tmdb_sold, в comenz - sid + cod и если нужно читать данные за большие периоды - лучше соединить таблицы вместо подзапроса.
25 Например, когда нужно читать данные за от месяца до 3-х месецев:
26 (% style="font-size: 14px; font-family: Consolas; background-color:#fbfdff" %)
27 \\ select ~-~-d.*
28 (select s.id_casa from tmdb_sold s where s.nrdoc=d.nrdoc and s.sid = d.sid) id_casa
29 ~-~-,(select count(s.id_casa) from tmdb_sold s where s.nrdoc=d.nrdoc ) cnt_id_casa
30 , d.*
31 from tmdb_comenz d
32 ~-~-order by cnt_id_casa desc
33
34 **Почему кассы имеют нумерацию 101 и 102 а не 1 и 2?**
35
36 101 - первый магазин, первая касса.
37 102 - первый магазин, вторая касса.
38 ...
39 N0M - N-й магазин, M-я касса.
40
41 Ключ кассы уникален в рамках всей сети.
42
43 (% style="font-size: 14px; font-family: Consolas; background-color:#fbfdff" %)
44 select ...
45 from tmdb_comenz c, tmdb_sold s
46 where c.sid = s.sid
47 and c.nrdoc = s.nrdoc
48 and trunc(c.data) between :start_date and :end_date
49 \\В зависимости от периода оптимизатор сам выберет, что эффективнее - соединять по индексу или full scan.