|
|
|
Помогите с SQL
|
|||
|---|---|---|---|
|
#18+
Никак не могу составить один запрос :( Есть три таблицы: DOGOVOR - содержит договоры с поставщиками, Nacladnaya - содержит список накладных и R_Order - содержит список расчётных ордеров, которые фиксируют факт оплаты поставки. Упрощенная структура этих таблиц такая: Код: plaintext 1. 2. 3. Необходимо посчитать сумму всех сумм накладных по каждому договору (иными словами, суммировать поле summa для всех накладных по каждому договору в отдельности). Затем то же самое проделать с расчётными ордерами. Затем вычесть из сумм накладных суммы расчётных ордеров и получить таким образом таблицу, в которой было бы указано сколько мы еще должны оплатить по каждому договору. Я написал вот что: Код: plaintext 1. 2. 3. Проблемы всего две: 1) Запрос считает неправильно, такое ощущение, что какие-то поле суммируется несколько раз вместо одного. 2) В запрос не попадают договора, по которым уже есть накладные, но еще нет расчётных ордеров. Буду очень благодарен, если кто поможет, самому мне с этим не справиться :( P.S Запрос, на самом деле, немного сложнее, я убрал из него те вещи, которые не вызывают у меня трудностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2007, 21:07 |
|
||
|
Помогите с SQL
|
|||
|---|---|---|---|
|
#18+
Если решать задачу "в лоб", то надо делать отдельный запрос для подсчета сумм накладкных, отдельный запрос для подсчета сумм ордеров и уже третьим запросом получать разницу. Упрощенно, примерно так: Код: plaintext 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. Проблема в том, что если по одному договору у тебя 2 накладных и 2 ордера, то в твоем первоначальном запросе сумма накладных и ордеров удвоится. Нельзя напрямую объединять накладные и ордера. Только после исключения "дублей" по коду договора. Это как раз и решается предварительной группировкой. Кажется, в VFP9 второй вариант можно объединить в один. Т.е. в опции FROM указать первый подзапрос. Но здесь не уверен. Не проверял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2007, 23:36 |
|
||
|
Помогите с SQL
|
|||
|---|---|---|---|
|
#18+
Большое спасибо, разобрался с первым вариантом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 11:51 |
|
||
|
Помогите с SQL
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, кто-нибудь может мне дать полезный совет, а именно: у меня есть база данных (задание:Таблица 1: код института, название института, фамилия ректора Таблица 2: код института, название специальности, количество принятых на первый курс студентов, количество выпускников. Определить Количество специальностей в каждом институте) в access состоящая из двух таблиц, я сделал 2 формы для каждой таблицы соответственно в visual basic ,добавил DATA , связал ее с таблицами, также расположил нужное количество textbox для отображения в них данных по каждой таблице, а теперь мне нужно Определить Количество специальностей в каждом институте. Кто-нибудь может подсказать как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 12:19 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34468020&tid=1589513]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 393ms |

| 0 / 0 |
