powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Перекрёстный запрос, транспонирование
9 сообщений из 9, страница 1 из 1
Перекрёстный запрос, транспонирование
    #37709653
Ra1990
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, понимаю тема заезженная, слабый в oracle, поэтому сильно не пинайте(, помогите разобраться.

Есть таблица:
fruits data kommentАрбуз 20.02.2012 абвАрбуз 21.02.2012 123Лимон 22.02.2012 гдеЛимон 20.02.2012 456Апельсин 20.02.2012 123Апельсин 22.02.2012 789

Нужно получить перекрёстную:
fruits 20.02.2012 21.02.2012 22.02.2012Арбуз абв 123 -Лимон 456 - гдеАпельсин 123-789

Количество дат не фиксированное, могут добавляться.

Видимо задача решается так: , Но не могу понять как будет выглядеть вызов пакета в моём случае и где этот вызов прописать(, чтобы результат отобразился в reportе, если пользуюсь APEX? Есть ли, альтернативные варианты [более простые] решения задачи?
Спасибо за внимание.

Oracle 11g R2 Express Edition, APEX 4.0
...
Рейтинг: 0 / 0
Перекрёстный запрос, транспонирование
    #37709679
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
'в аксессе, екселе....... чтобы не возиться со столбцами применяла прием
'размер и ориентацию бумаги можно прописать(и шрифт)
Dim rst As DAO.Recordset
Dim s1
Dim j1, j2
Public Sub a120317_1033()

s1 = ""
s1 = s1 & "TRANSFORM Count(w.[Код]) AS [Count-Код]"
s1 = s1 & " SELECT w.[Источник поступления информации], Count(w.[Код]) AS [Итого]"
s1 = s1 & " FROM [наряд-задание] w"
s1 = s1 & " where Format([Дата(наряд-задание)],'yyyy')='2012'"
s1 = s1 & " GROUP BY w.[Источник поступления информации]"
s1 = s1 & " PIVOT Format([Дата(наряд-задание)],'yyyy-mm-dd');"
form_perekrest s1, "c:\rab\ot1.htm", "explorer"
' explorer
' word
' excel
End Sub
Sub form_perekrest(zsql, zname, Optional zreg As String = "e")
Set rst = CurrentDb.OpenRecordset(zsql)
Open zname For Output As #1
Print #1, "<html>"
Print #1, "<meta http-equiv=""Content-Type"" content=""text/html; charset=windows-1251"" />"
Print #1, "<table border=1 width=100% cellspacing=0 cellpadding=0>"
Print #1, "<thead>"
Print #1, "<tr>"
j1 = 0
j2 = rst.Fields.Count
Do While j1 < j2

Print #1, "<th>", rst.Fields(j1).Name
j1 = j1 + 1
Loop
Print #1, "</thead>"
Print #1, "<td>", "text2"
Do While rst.EOF = False
Print #1, "<tr>"
j1 = 0
j2 = rst.Fields.Count
Do While j1 < j2

Print #1, "<td>", Nz(rst.Fields(j1).Value, "-")
j1 = j1 + 1
Loop
rst.MoveNext
Loop
Print #1, "</table>"
Print #1, "</html>"
Close #1
If zreg = "word" Then
j1 = Shell("winword.exe c:\rab\ot1.htm", vbNormalFocus)
ElseIf zreg = "excel" Then
j1 = Shell("excel.exe c:\rab\ot1.htm", vbNormalFocus)
Else
j1 = Shell("explorer.exe c:\rab\ot1.htm", vbNormalFocus)
End If

End Sub
...
Рейтинг: 0 / 0
Перекрёстный запрос, транспонирование
    #37710403
Ra1990
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выше хотел так написать: ...Видимо задача решается так: Транспонирование строк в столбцы в RefCursor'е , Но...
...
Рейтинг: 0 / 0
Перекрёстный запрос, транспонирование
    #37711541
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ra1990,

Для апекса подойдет любое решение SQL / PL/SQL.
Для PL/SQL есть тип региона function body returning sql query.

STFF
...
Рейтинг: 0 / 0
Перекрёстный запрос, транспонирование
    #37711596
Ra1990
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDev,

а как будет выглядеть PL/SQL функция для вызова пакета для моей задачи?
...
Рейтинг: 0 / 0
Перекрёстный запрос, транспонирование
    #37711627
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Ra1990
Если вы просите привести пример использования региона function body returning sql query.

Примерно так
Код: plsql
1.
2.
3.
4.
5.
6.
declare
...
begin
  ...
  return 'select...';
end;



По ссылке 7 страниц тем с примерами, если по прежнему не можете написать, вам в тему работа...
...
Рейтинг: 0 / 0
Перекрёстный запрос, транспонирование
    #37711680
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю, если хотите использовать этот пакет,
то sys_refcursor вам не нужен, возвращайте из пакета код запроса.
...
Рейтинг: 0 / 0
Перекрёстный запрос, транспонирование
    #37711976
Ra1990
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDev,

Вот беда( ну ни как не справлюсь ((( Понял так парамтр p_cursor=>:x не нужен,
но с этими так и не разберусь что писать:
p_max_cols_query =>
p_query =>
p_anchor =>
p_pivot =>
...
Рейтинг: 0 / 0
Перекрёстный запрос, транспонирование
    #37712251
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ra1990,

Чтобы вашему преподу понравилось:

p_max_cols_query => Коньяк
p_query => Конверт
p_anchor => Цветы
p_pivot => Конфеты
p_cursor=> Пиджак+бабочка

P.S.
По теме, не хотите разбираться (а там всего-то 50 строчек кода надо разобрать, весьма примитивных) пишите сюда
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Перекрёстный запрос, транспонирование
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]