|
|
|
Как сопоставить строки из двух таблиц?
|
|||
|---|---|---|---|
|
#18+
Дано: две таблицы. В каждой есть поля datetime, ID кассира, № чека, сумма чека, и столбец FAKE. В одной из них также есть столбец номер смены. Требуется сопоставить строки одной таблицы строкам другой, при том, что: а) время чека в одной строке может отличаться от времени чека на несколько минут (от -1 минуты до +10 минут) и в итоге дата одного платежа в двух таблицах может быть разной ; б) номер чека в первой таблице отличается от номера чека во второй таблице на величину от 0 до +N; в) номера чеков любой кассы возрастают в рамках смены, после начала смены нумерация начинается заново; Данные по смене даны только для одной таблицы из двух; г) отдельные строки в обоих таблицах могут отсутствовать; д) значения в столбце fake равны нулю. Не могут меняться только id кассира и сумма платежа. Ограничивающее условие: число и сумма платежей по кассе, включая пропущенные платежи, в первой таблице должны равняться числу и сумме платежей по кассе во второй таблице, включая пропущенные в ней. добавление найденных пропущенных строк в исходные таблицы возможно, но с пометкой в столбце fake=1. Кто что посоветует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 13:07:26 |
|
||
|
Как сопоставить строки из двух таблиц?
|
|||
|---|---|---|---|
|
#18+
DaniilSeryi, а), б) - используй "математический подход" про "эпсилон окружность" - abs(разница значений) <= "некая дельта" в) легко разделить данные на смены. lead/lag + sum() over(order by) в помощь. г) внешнее соединение д) если сможешь найти недостающее - то вставить - дело техники... З.Ы. будет вменяемый репрезентативный юзабильный набор тестовых данных - найдутся желающие переложить всё сказанное словами на SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 13:14:53 |
|
||
|
|

start [/forum/moderation_log.php?user_name=%D0%A2%D0%B0%D0%B1]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
156ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 524ms |
| total: | 786ms |

| 0 / 0 |
