|
|
|
Вопрос к профи: помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Имеется: 1) object: ID 2) licence: ID, objectID 3) term: licenceID для allow, objectID для used В term.objectID ссылается на совершенно другой object (который отличается от object в licence), для которого устанавливается значение used Значение allow устанавливается для object, который находится в licence, и связь получается через таблицу licence Нужно вывести одним запросом: 1) Значение allow: SELECT object.ID, SUM(term.allow) FROM object LEFT JOIN licence ON licence.objectID=object.ID LEFT JOIN term ON term.licenceID=licence.ID GROUP BY object.ID 2) Значение used: SELECT object.ID, SUM(term.used) FROM object LEFT JOIN term ON term.objectID=object.ID GROUP BY object.ID 3) Булевское overflow: CASE WHEN allow>used THEN 1 ELSE 0 END overflow Обязательно нужно иметь возможность сортировать результаты по allow и used, и фильтровать результаты по overflow (overflow=1 or 0) Был бы очень благодарен за помощь! Сейчас запрос следующий, но не считает allow, и нельзя ни сортировать, ни фильтровать результат SELECT (SELECT sum(term.used) FROM term LEFT JOIN licence ON licence.ID=term.licenceID WHERE term.objectID=objectID) used, (SELECT sum(term.allow) FROM term WHERE term.licenceID=licence.ID) allow, CASE WHEN allow<used then 1 ELSE 0 END overflow FROM object LEFT JOIN licence ON licence.objectID=object.ID GROUP BY a.id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2014, 00:02:47 |
|
||
|
Вопрос к профи: помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
m1andry3) term: licenceID для allow, objectID для usedЯННП. Это что значит: - 3 поля "licenceID", "objectID", "type"(allow/used) - 2 поля "termtype"(allow/used), "termval" (licenceID/objectID в зависимости от первого) - или какой-то третий вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2014, 05:30:19 |
|
||
|
Вопрос к профи: помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
tanglir, очевидно, что третий(полей всего 4), ибо если посмотреть запросы, то в таблице term есть поля allow и used, в которых, скорее всего, стоят 1 или 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2014, 08:36:47 |
|
||
|
Вопрос к профи: помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2014, 10:14:22 |
|
||
|
Вопрос к профи: помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
да, полей 4. allow и used - это объемы, который разрешен для использования (allow), и используются (used) согласно накладной. Их и надо посчитать. Вот только allow действует для objectID, который проставлен в licence, а used используется для подсчета по objectID, который проставлен в term ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2014, 10:56:12 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38527709&tid=1835393]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 272ms |

| 0 / 0 |
