|
Объединить таблицу и заменить значение при выводе
|
|||
---|---|---|---|
#18+
Доброго времени суток, ув. форумчане! Есть данный запрос: SELECT ARCHIVE_ID, DOC_ID AS "ИНВЕНТАРНЫЙ НОМЕР", SYSDBA.DOCTYPES.DOC_NAME AS "ТИП ДОКУМЕНТА", VERSION_ID AS "НОМЕР ВЕРСИИ", DESIGNATIO AS "ОБОЗНАЧЕНИЕ", NAME AS "НАИМЕНОВАНИЕ", SYSDBA.USERS.FULLNAME AS "ВЛАДЕЛЕЦ", SYSDBA.USERS.FULLNAME AS "РЕДАКТИРУЕТСЯ" FROM SYSDBA.DOCLIST LEFT JOIN SYSDBA.DOCTYPES ON SYSDBA.DOCTYPES.DOC_TYPE = SYSDBA.DOCLIST.DOC_TYPE LEFT JOIN SYSDBA.USERS ON SYSDBA.USERS.USER_ID = SYSDBA.DOCLIST.DESIGNERID LEFT JOIN SYSDBA.USERS ON SYSDBA.USERS.USER_ID = SYSDBA.DOCLIST.DOC_STATUS Соль в том что столкнулся с проблемой, которую попробую сейчас описать. В таблице SYSDBA.DOCLIST.DOC_STATUS хранятся ID которые соответствуют ID таблицы SYSDBA.USERS.USER_ID и вывожу эти имена юзеров, но если значение равно 0 то надо вывести что документ 'Сдан', а вот как это реализовать практически не могу представить, уже разное пробовал, надеюсь на помощь и не бросайтесь помидорами:) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 13:18 |
|
Объединить таблицу и заменить значение при выводе
|
|||
---|---|---|---|
#18+
bors В … DOC_STATUS хранятся ID ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 13:29 |
|
Объединить таблицу и заменить значение при выводе
|
|||
---|---|---|---|
#18+
Elic, Базу данных проектировал не я, я лишь занимаюсь выборкой, согласно заданию, и не очень успешно по итогу ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 13:31 |
|
Объединить таблицу и заменить значение при выводе
|
|||
---|---|---|---|
#18+
bors, самое простое добавить технического юсера с ид=0 и именем 'Сдан' а так decode(SYSDBA.DOCLIST.DOC_STATUS,0,'Сдан', 'то что счас для <>0') xxx_name ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 14:10 |
|
Объединить таблицу и заменить значение при выводе
|
|||
---|---|---|---|
#18+
Stax, к сожалению, простой вариант решения проблемы пришлось отсечь сразу) А что касается варианта, который Вы предложили, можете, пожалуйста, более подробно описать? Буду очень признателен, опыт в sql очень небольшой, не так давно работаю ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 14:28 |
|
Объединить таблицу и заменить значение при выводе
|
|||
---|---|---|---|
#18+
bors, трудно рисовать что-то подробнее, не совсем понимая вопрос Код: 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.
зы я неуверен что в 22230709 нет очепяток ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 15:08 |
|
Объединить таблицу и заменить значение при выводе
|
|||
---|---|---|---|
#18+
Stax, спасибо, работает :) Поиски в интернете не дали возможности наткнуться на такую замечательную ф-ю ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 15:57 |
|
Объединить таблицу и заменить значение при выводе
|
|||
---|---|---|---|
#18+
Stax, хотел бы еще пользуясь случаем задать вопрос. То что я делаю left join по user_id к DESIGNERID и DOC_STATUS не создаст каких-нибудь проблем? Все дело именно в этих строчках: SELECT ... SYSDBA.USERS.FULLNAME AS "ВЛАДЕЛЕЦ", SYSDBA.USERS.FULLNAME AS "РЕДАКТИРУЕТСЯ" ... LEFT JOIN SYSDBA.USERS ON SYSDBA.USERS.USER_ID = SYSDBA.DOCLIST.DESIGNERID LEFT JOIN SYSDBA.USERS ON SYSDBA.USERS.USER_ID = SYSDBA.DOCLIST.DOC_STATUS Не будет ли конфликта? Потому что стал замечать отсутствие единичных данных при выборке ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 16:28 |
|
Объединить таблицу и заменить значение при выводе
|
|||
---|---|---|---|
#18+
bors Не будет ли конфликта? Потому что стал замечать отсутствие единичных данных при выборке Уточните, что понимается под конфликтом. Попробуйте написать JOIN и LEFT JOIN, приведите тестовые данные и результат в виде with, и поясните, что вас не устраивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 16:40 |
|
Объединить таблицу и заменить значение при выводе
|
|||
---|---|---|---|
#18+
bors Stax, хотел бы еще пользуясь случаем задать вопрос. То что я делаю left join по user_id к DESIGNERID и DOC_STATUS не создаст каких-нибудь проблем? Все дело именно в этих строчках: SELECT ... SYSDBA.USERS.FULLNAME AS "ВЛАДЕЛЕЦ", SYSDBA.USERS.FULLNAME AS "РЕДАКТИРУЕТСЯ" ... LEFT JOIN SYSDBA.USERS ON SYSDBA.USERS.USER_ID = SYSDBA.DOCLIST.DESIGNERID LEFT JOIN SYSDBA.USERS ON SYSDBA.USERS.USER_ID = SYSDBA.DOCLIST.DOC_STATUS Не будет ли конфликта? Потому что стал замечать отсутствие единичных данных при выборке авторя неуверен что в 22230709 нет очепяток имхо, добавить алиасы Код: 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.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 16:46 |
|
Объединить таблицу и заменить значение при выводе
|
|||
---|---|---|---|
#18+
Stax, авторя неуверен что в 22230709 нет очепяток Это и пугает: опечаток нет:) Staxимхо, добавить алиасы Понял. Думал просто что можно что-то оптимизировать, иль что делаю не так, опыта мало, пока что нет представления особо что плохо/хорошо, что быстро/медленно. Спасибо за помощь!) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 08:36 |
|
|
start [/forum/topic.php?fid=52&msg=40017498&tid=1880724]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
146ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 325ms |
total: | 573ms |
0 / 0 |