|
|
|
Номер записи
|
|||
|---|---|---|---|
|
#18+
Господа, всё это не то. Join здесь ни причём. Это действительно интересный вопрос - как сделать запрос, возвращающий переменное число ПОЛЕЙ в зависимости от существования данных. Т.е., например, если на Складе1 есть Товар1 и Товар2, на Складе2 Товара1 нет, но есть Товар2, то запрос должен вернуть должен вернуть Name Склад1 Склад2 Товар1 20 Товар2 10 30 Если существуют ещё склады, на которых ничего нет, то они и не выводятся в качестве полей. Например, в Access это делается элементарно - там есть конструкция TRANSFORM... Select... PIVOT... А в навороченном Oracle, похоже нет такой возможности. Или есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2003, 17:11:30 |
|
||
|
Номер записи
|
|||
|---|---|---|---|
|
#18+
Дамс задачка интересная! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2003, 17:15:40 |
|
||
|
Номер записи
|
|||
|---|---|---|---|
|
#18+
Сказали же вам уже много раз ищите на этом форуме по ключевым словам cast или multiset. P.S. До чего же народ упрямый и невнимательный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2003, 17:35:29 |
|
||
|
Номер записи
|
|||
|---|---|---|---|
|
#18+
SoftBuilder, Точно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2003, 17:39:19 |
|
||
|
Номер записи
|
|||
|---|---|---|---|
|
#18+
Ну если multiset не устраивает (действительно не панацея), то подобный запрос можно сбацать через процедуру, которая возвращает тип table of <запись>. Сразу скажу что без днамического SQL здесь не обойтись. Поэтому если вам нужен только отчет и не нужен дополнительный гимор, то получайте его сторонними продуктами (возьмите тот же Excel, Developer). Никаких Pivot в Oracle нет. 2softbuilder@inbox.ru Походу дела нужен сводный отчет, только почему то товарищ умалчивает об этом и приводит всякие join чтобы сбить народ с толку. 2bjohny Вы хоть сами определились что вам надо? Суда по вашим постам - прогнило что-то в Датском Королевстве ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2003, 18:42:54 |
|
||
|
Номер записи
|
|||
|---|---|---|---|
|
#18+
bjohny, киньте ссылку на то, что Вы нашли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2003, 18:43:06 |
|
||
|
Номер записи
|
|||
|---|---|---|---|
|
#18+
Статический запрос с динамическим количеством столбцов в Оракл сделать нельзя. И вообще я такого не видел. Потому что не нужно. Варианты решения: 1. Если нужно просто получить инфу в таком виде -- пишем функцию, в которую будет передаваться ID, и которая будет возвращать строку с нужными разделителями (таб, пробел...) Запрос: SELECT T1.ID, T1.FIO, GetCourList( T1.ID ) FROM Table1 T1; Функция: create or replace function GetCourList( pID in Integer ) return String as cursor c1 is select * from Table2 where ID = pID; sResult String(32767); begin for x in c1 loop sResult := sResult || ' ' || x.COUR; end loop; return SubStr(sResult,2); end; 2. Запрос выполняется в том виде, в котором он получается естественным путем, а уже клиентское приложение разносит данные по нужным столбцам и динамически их создает. Для этого нужно написать свой компонент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2003, 20:21:33 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32170082&tid=1990321]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
205ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 541ms |

| 0 / 0 |
