|
JOIN по двум полям с датой
|
|||
---|---|---|---|
#18+
Привет, помогите с запросом Написал код, не могу догнать, как сделать select t1.account_number, sum(t1.sum) as charge_tv, trunc(t1.charge_date,'month') as data_charge, t2.pay_sum, trunc(pay_date,'month') from charge t1 left join ( select account_num, status, sum(amount_rur) as pay_sum, trunc(pay_date,'month') as data_pay from payments where pay_date >=to_date('01.10.2018','dd.mm.yyyy') and pay_date < to_date('01.01.2019','dd.mm.yyyy') and status = 0 group by trunc(pay_date,'month'),account_num,status) t2 on t1.account_number=t2.account_num and trunc(t1.charge_date,'month')=trunc(pay_date,'month') where t1.charge_date >= to_date('01.10.2018','dd.mm.yyyy') and t1.charge_date < to_date('01.01.2019','dd.mm.yyyy') and group by trunc(t1.charge_date,'month'),trunc(pay_date,'month'), t1.account_number,t2.pay_sum В этом случае выводится следующее 677 21 01.10.18 17 01.10.18 677 21 01.11.18 15 01.11.18 677 21 01.12.18 10 01.12.18 677 21 01.11.18 10 01.11.18 677 21 01.10.18 15 01.10.18 677 21 01.11.18 17 01.11.18 677 21 01.12.18 15 01.12.18 677 21 01.12.18 17 01.12.18 677 21 01.10.18 10 01.10.18 В общем есть две таблицы, у которых есть ключ - account_number, есть суммы по датам. Мне нужно так: Если есть в первой таблице acc_num date charge 677 01.10.18 21 677 01.11.18 21 А во второй таблице acc_num date pay 677 01.10.18 10 677 01.11.18 15 Объединение работало так: acc_num date charge pay 677 01.10.18 21 10 677 01.11.18 21 15 Как это можно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 12:51 |
|
JOIN по двум полям с датой
|
|||
---|---|---|---|
#18+
STFF соединение по порядковому номеру ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 12:59 |
|
JOIN по двум полям с датой
|
|||
---|---|---|---|
#18+
Elic, Можно поподробнее, пожалуйста? Я не особый знаток ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 13:01 |
|
JOIN по двум полям с датой
|
|||
---|---|---|---|
#18+
o.makarovОбъединение работало так: acc_num date charge pay 677 01.10.18 21 10 677 01.11.18 21 15 Как это можно сделать? я не совсем понял что надо Код: plsql 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.
зи мож вам надо намного проще (схематично) select acc_id,trunc(dat,'MM'),sum(sum) as charge_tv,sum(amount_rur) pay_sum from (select acc_id,dat,sum,0 amount_rur from t1 where .... UNION all select acc_id,dat,0,amount_rur from t2 where .... ) group by acc_id,trunc(dat,'MM') ...... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 13:56 |
|
JOIN по двум полям с датой
|
|||
---|---|---|---|
#18+
Stax, спасибо большое, протестирую чуть позже. Суть в том, что есть список аккаунтов с суммами на конкретную дату из одной таблицы и список аккаунтов с суммами на конкретную дату из второй таблицы. То есть, условно, говоря есть аккаунт 1 с суммой 100 на дату 01.10.2018 и аккаунт 1 с суммой 20 на дату 01.10.2018 Мне нужно получить колонки 1| 01.10.2018| 100| 20| А мне подтягиваются все суммы из выбранного диапазона, то есть если у аккаунт 1 во второй таблице есть сумма 20 на 01.10.2018 и сумма 30 на 01.11.2018, мне подтянется 1|01.10.2018|100|20 1|01.10.2018|100|30 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 14:02 |
|
JOIN по двум полям с датой
|
|||
---|---|---|---|
#18+
o.makarov1|01.10.2018|100|20 1|01.10.2018|100|30 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
.... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 14:27 |
|
|
start [/forum/topic.php?fid=52&fpage=86&tid=1882883]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 20ms |
total: | 153ms |
0 / 0 |