Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Работы с терминалами MySQL
|
|||
|---|---|---|---|
|
#18+
Работа с банкоматами. Есть поля - id, name, numbr, currency, endcash. Для каждого банкомата есть Numbr - это номер кассеты(от 1 до 4), при каждом numbr свой различный endcash и currency. Надо вывести запросом одну строку по каждому банкомату. Вот часть кода: select id, name, (case when numbr = 1 then endcash else null end) as cassette_1_endcash, (case when numbr = 1 then currency else null end) as cassette_1_currency, (case when numbr = 2 then endcash else null end) as cassette_2_endcash, (case when numbr = 2 then currency else null end) as cassette_2_currency, (case when numbr = 3 then endcash else null end) as cassette_3_endcash, (case when numbr = 3 then currency else null end) as cassette_3_currency, (case when numbr = 4 then endcash else null end) as cassette_4_endcash, (case when numbr = 4 then currency else null end) as cassette_4_currency from(какой-то подзапрос, где нет чего-то важного) group by id,name,numbr order by id Проблема в том, что он выводит все в 4 строки(см. фото), так как Numbr у всех endcash и currency разный, а надо, чтобы одному банкомату была присвоена одна строка, т.е у одного id и name 4 кассеты с разными номерами и разными endcash и currency в одну строчку. Надо как-то сделать через групповые функции(подозреваю, что через sum),но не совсем понимаю как. Заранее извиняюсь за фотку, возможности скрин сделать не было. Выручайте! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 14:30 |
|
||
|
Работы с терминалами MySQL
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 14:33 |
|
||
|
Работы с терминалами MySQL
|
|||
|---|---|---|---|
|
#18+
А если в банкомате станет больше кассет? Будете все запросы и отчеты переделывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 14:36 |
|
||
|
Работы с терминалами MySQL
|
|||
|---|---|---|---|
|
#18+
miksoft, спасибо вам! делаю эту задачу уже неделю(там еще проблемы с подзапросом были, но справился) и так зациклился на одном глупом способе решения, что совсем не увидел очевидного. кассет вообще 8 всегда, но сказали делать только по 4 первым(ибо только они заполнены). еще раз спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 15:11 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39563277&tid=1830216]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
55ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 389ms |

| 0 / 0 |
