|
|
|
Select. Получить значение, если его нет - получить другое и т.д.
|
|||
|---|---|---|---|
|
#18+
Уважаемые! Помогите с запросом. Вот есть табличка Objects (id,...) с объектами недвижимости, и есть табличка Area (id,object_id,type_code,value...) с площадями этих объектов. У объекта может быть или вообще не быть несколько площадей (записей, а не полей в Area!!!): общая/жилая/фактическая/уточненная.... (поле type_code, value - значение площади) Можно ли вытащить по объекту его общую площадь, если её нет - жилую и т.д. заранее неизвестно, есть ли вообще площадь у объекта, если есть, то неизвестно сколько их и какие Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2017, 11:01 |
|
||
|
Select. Получить значение, если его нет - получить другое и т.д.
|
|||
|---|---|---|---|
|
#18+
Флексей, Можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2017, 11:49 |
|
||
|
Select. Получить значение, если его нет - получить другое и т.д.
|
|||
|---|---|---|---|
|
#18+
RTFM FIRST/LAST ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2017, 12:42 |
|
||
|
Select. Получить значение, если его нет - получить другое и т.д.
|
|||
|---|---|---|---|
|
#18+
Для справочника по type_code, нужно пронумеровать типы площадей в том порядке, в котором нужно получить результат. Затем запрос с подзапросом. В подзапросе соединяете объект, значение площади, ранг площадей и используете оконную(аналитическую) функцию row_number() с сортировкой по рангу в рамках каждого объекта. Во внешнем запросе выбираете первую строку для каждого объекта Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 08:41 |
|
||
|
Select. Получить значение, если его нет - получить другое и т.д.
|
|||
|---|---|---|---|
|
#18+
Evgeny2, т.к. Флексей не знает Флексей ... заранее неизвестно, есть ли вообще площадь у объекта ... использование inner join не совсем корректно, лучше left join и тогда rn = 1 тоже не совсем корректно, т.к. сулит потерей данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 11:06 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39490011&tid=1885588]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
8ms |
get forum data: |
7ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 224ms |
| total: | 500ms |

| 0 / 0 |
