|
сведение трех таблиц с использованием JOIN и CROSS APPLY
|
|||
---|---|---|---|
#18+
Здрасте! Есть 3 таблицы: Facts, Products, Clients. Задача: рассчитать оборот со скидкой. Если product и tip_clienta в Facts совпадает с product и tip_clienta в Products, а data_pokupki равна na4alo_akcii или data_pokupki сопоставляется с ближайшей меньшей na4alo_akcii - то скидка была - и эта покупка считается. Решаю задачу в Excel и в SQL Server - получаю разные результаты. Есть ли ошибки в моей попытке сверстать все в одной таблице в SQL Server 2012? Запрос выглядит следующим образом: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Считаю оборот: Код: sql 1.
Получается: 409606,76 в 848 строках А в Excel'е: 335306,36 в 683 строках Прикладываю книгу Excel с входными данными (не знаю, как приложить файл с БД). Прикладываю книгу Excel с решением. В сверстанных таблицах Excel и SQL Server разное количество строк (хотя в исходных данных строк в Excel и SQL Server - одинаково), соответственно обороты разные. В Excel'e уверен больше, но и не могу найти ошибку в SQL-запросе Microsoft SQL Server 2012 - 11.0.2100.60 (X64) Feb 10 2012 19:39:15 Copyright (c) Microsoft Corporation Express Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 15:56 |
|
сведение трех таблиц с использованием JOIN и CROSS APPLY
|
|||
---|---|---|---|
#18+
kukhmaster, вы пишете: kukhmaster Если product и tip_clienta в Facts совпадает с product и tip_clienta в Products а в cross apply: Код: sql 1.
Почему C.tip_clienta, а не F.tip_clienta? А если таки C.tip_clienta, то связь F.client = C.naim_clienta какая? 1 к 1 или 1 ко многим, а то тогда для F.client может быть несколько, допустим, разных C.tip_clienta с одним и тем же C.naim_clienta, и вы для каждого изменения C.tip_clienta получаете покупки, которых не было - непонятно без описания таблиц. PS.файл не смотрел ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 23:25 |
|
|
start [/forum/topic.php?fid=46&msg=39909683&tid=1686698]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 134ms |
0 / 0 |