|
sql запрос
|
|||
---|---|---|---|
#18+
Никак не пойму как сделать запрос. Есть таблица "Оказанные услуги", есть "Оплата" этих услуг. Может быть несколько записей Оплаты на одну Оказанную услугу, может не быть вообще. В Оказанных услугах есть Код клиента. Нужно сделать выборку "Код клиента" и его долг (СтоимостьУслуги - сумма его платежей). SELECT [Оказанные услуги].КодКлиента, Sum(Оплата.СуммаОплаты) AS paid FROM [Оказанные услуги] LEFT JOIN Оплата ON [Оказанные услуги].Код = Оплата.КодУслуги GROUP BY [Оказанные услуги].КодКлиента; куда здесь вставить Стоимость услуги, внутрь суммы не получится,будет считать неправильно, снаружи Стоимость услуги-Sum, то выражение не будет частью статистической функции или группы Попробовал сделать так SELECT [Оказанные услуги].КодКлиента, ([Оказанные услуги].СуммаОплаты-Nz((SELECT Sum(Оплата.СуммаОплаты) AS [Sum-СуммаОплаты] FROM [Оплата] where Оплата.КодУслуги=[Оказанные услуги].Код),0)) AS debt FROM [Оказанные услуги], Оплата GROUP BY [Оказанные услуги].КодКлиента, [Оказанные услуги].Код, [Оказанные услуги].СуммаОплаты; считает правильно, но не могу сгруппировать по Коду клиента, если убрать из группировки Код и Сумму Оплаты, тогда вложенный селект будет ругаться ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 11:33 |
|
sql запрос
|
|||
---|---|---|---|
#18+
alexkl123, это очень примерно,но схема должна быть примерно такой(естессно вынести перечень услуг со стоимостью в отдельную таблицу): ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 12:04 |
|
sql запрос
|
|||
---|---|---|---|
#18+
Лефтджоин не забудь. Иначе из выборки пропадут клиенты с начислениями, но без оплат. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 12:43 |
|
sql запрос
|
|||
---|---|---|---|
#18+
sdku, Спасибо, но это примерно, что у меня вверху. Получить сумму оплат по услуге - не проблема. Но нужно добавить в таблицу Услуги стоимость этой услуги и брать не сумму оплат, а стоимость услуги - сумма оплат. Вот это я не пойму как сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 13:01 |
|
sql запрос
|
|||
---|---|---|---|
#18+
982183, прошу пардону-забыл ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 13:08 |
|
sql запрос
|
|||
---|---|---|---|
#18+
А я что-то проблемы не понял Должно работать в простейшем виде: Код: sql 1. 2. 3. 4. 5. 6. 7.
Где проблема начинается? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 13:37 |
|
sql запрос
|
|||
---|---|---|---|
#18+
alexkl123Но нужно добавить в таблицу Услуги стоимость этой услуги и брать не сумму оплат, а стоимость услуги - сумма оплат. Вот это я не пойму как сделать. на форме должно быть поле со списком [услуги],которое "проглотит" только то значение которое есть в таблице [услуги], если же в него вводить значение отсутствующее в таблице [услуги]то надо обработать событие "отсутствиеВсписке" для этого combo. Примерно так: Код: vbnet 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. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 13:50 |
|
sql запрос
|
|||
---|---|---|---|
#18+
982183, Считает неправильно. Допустим на одну отгрузку две оплаты. Тогда будет считать Отгрузка-Оплата1 + Огрузка-Оплата2, Отгрузку берет столько раз сколько оплат, а должно быть Отгрузка - (Оплата1+Оплата2), такое чувство что нужно distinct куда-то прилепить. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 13:52 |
|
sql запрос
|
|||
---|---|---|---|
#18+
вдогонку:если в таблицу нужно добавить запись содержащую одно поле(но это не Ваш случай-кроме наименования услуги будет второе поле-её стоимость) можно не создавать форму для добавления а в процедуре добавить запись в таблицу запросом ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 13:58 |
|
sql запрос
|
|||
---|---|---|---|
#18+
Ну так, если не умеешь делать составные запросы, Напиши сначала запрос "Оплаты" Код: sql 1. 2. 3.
А в основном запросе обратись к нему. Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 14:01 |
|
sql запрос
|
|||
---|---|---|---|
#18+
sdku, Да у меня уже есть готовые таблицы с данными, мне нужно просто сделать выборку при помощи sql для отчета. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 14:04 |
|
|
start [/forum/topic.php?fid=45&msg=39681089&tid=1611280]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 140ms |
0 / 0 |