Форум: "Базы";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
ВнизСтроки стали столбцами Найти похожие ветки
← →
RH (2003-11-03 06:07) [0]Добрый день. Необходимо строки сделать столбцами? Как это реализовать? Подскажите, плиз. Или где посмотреть инфу?
← →
Zacho (2003-11-03 07:30) [1]Динамическим формированием запроса с многократным join"ом таблицы с самой собой. А лучше сделай это в клиентском приложении - и проще, и работать быстрее будет.
← →
RH (2003-11-03 08:55) [2]Многократным это как? Конкретнее можно, плиз? желательнее код запроса...
← →
stud (2003-11-03 09:27) [3]а почему ХП не подойдет?
← →
Zacho (2003-11-03 09:37) [4]2 RH © : Не, пожалуй я соврал .. :( Вот что значит сутки не спать
Все-таки такой запрос сделать не получится, а вот сформировать запрос для получения кросс-таблицы (если с недосыпа термины не путаю) - можно. Но,imho, это имеет смысл только если полей в результирующей таблице будет немного, иначе быстрее это сделать на клиенте.
Так что мой тебе совет - делай в приложении.
2 stud © (03.11.03 09:27) [3]: потому что в ХП не может быть неопределенное количество выходных параметров.
← →
RH (2003-11-03 09:37) [5]ХП-? это что?
← →
RH (2003-11-03 09:39) [6]хм..делать в приложении?..
есть специальные методы? или что? или как это вооще организовать?
← →
Zacho (2003-11-03 09:42) [7]
> RH © (03.11.03 09:39) [6]
Например, используешь для отображения и редактирования не DBGrid а StringGrid в который загоняешь данные из набора данных как тебе угодно - хоть строки со столбцами меняй местами, хоть по диагонали как-нибудь :)
← →
RH (2003-11-03 09:44) [8]ясно.. спасибо
щаз буду пробовать
← →
stud (2003-11-03 09:45) [9]
> (03.11.03 09:27) [3]: потому что в ХП не может быть неопределенное
> количество выходных параметров.
это как??? строки в столбы - выходной параметр столбец. или я не....
← →
Zacho (2003-11-03 09:49) [10]
> stud © (03.11.03 09:45) [9]
Покажи пример ХП с выходным параметром (да хоть и входным или переменной) - столбцом.
← →
stud (2003-11-03 09:51) [11]если процедура возвращает набор в виде одного выходного значения например:
зн1
зн2
зн3
зн4
это как назвать?
← →
Zacho (2003-11-03 09:53) [12]Да снова я глупость написал, все спать надо. Но stud © (03.11.03 09:51) [11] абсолютно никакого отношения не имеет к исходной задаче. Дело в том, что в результирующем НД полей должно быть столько же, сколько записей в таблице. Ну и как ты это сделаешь в ХП ?
← →
stud (2003-11-03 09:57) [13]ну на самом деле мне кажется тут задача описана не доконца. возможно ему можно вернуть один столбец, содержащий нужные значения в виде одной большой строки
← →
Zacho (2003-11-03 10:01) [14]
> stud © (03.11.03 09:57) [13]
Такое можно. Если в строку влезет :) Тогда уж лучше BLOB :)
← →
stud (2003-11-03 10:01) [15]короче кажется тут не хватает одного человека)))
← →
RH (2003-11-03 10:09) [16]есть так:
Наименование1 Значение1
Наименование1 Значение2
Наименование1 Значение3
а нужно так
Поле1 Поле2 Поле3
Наименование1 Значение1 Значение2 Значение3
← →
Zacho (2003-11-03 10:12) [17]
> RH © (03.11.03 10:09) [16]
Если записей фиксированное и никогда не изменяющееся количество - тогда можно. Иначе делай в приложении.
← →
Polevi (2003-11-03 10:13) [18]TDrawGrid, Locate в процедуре отрисовки ячейки
← →
RH (2003-11-03 10:14) [19]как это сделать при неизменном количестве записей?
← →
stud (2003-11-03 10:19) [20]а для чего это надо? просто показать список значений, или для каких-то специфических целей?
можно просто в виде строки:
for SELECT CPEC_SPR.NAME
FROM CPEC_SPR
left outer JOIN REL_VS ON (CPEC_SPR.ID = REL_VS.COD_SPEC)
where rel_vs.id=:mr_id
into :temp_
do spec=:temp_||", "||:spec;
suspend;
на выходе spec - строка со списком всех специальностей специалиста
← →
stud (2003-11-03 10:19) [21]
> как это сделать при неизменном количестве записей?
создать просмотр
← →
Zacho (2003-11-03 10:24) [22]
> stud © (03.11.03 10:19) [21]
Имхо, не выйдет. Разве что ХП с while. Или создать дополнительную таблицу, в к-рой кол-во записей будет равно кол-ву полей в основной.
В общем, муть это все. На клиенте надо делать. Или StringGrid, или Polevi © (03.11.03 10:13) [18] или еще как-нибудь.
← →
stud (2003-11-03 10:35) [23]а зачем while?
а если примерно так ?
for SELECT pol1,.... , poln FROM table
where ()
into :pol1,...,poln
do
begin
if (pol1 is not null) then par1=:pol1 else par1=null;
............
if (poln is not null) then parn=:poln else parn=null;
suspend;
end
← →
Zacho (2003-11-03 10:41) [24]
> stud © (03.11.03 10:35) [23]
Так не выйдет. То есть выдет, но совсем не то.
Это то же самое, что и
for SELECT pol1,.... , poln FROM table
where ()
into :pol1,...,poln
do
begin
suspend;
end
Попробуй. Разве что создавать дополнительную таблицу, из к-рой и делать FOR SELECT, а уже в теле цикла выбирать из нужной.
← →
RH (2003-11-03 10:47) [25]спасибо всем, буду пробывать.
начну с того, что буду в приложении реализовывать, так вроде проще, через StringGrid, вроде уже наклевывается алгоритм...
запросы тоже попробую.
Спасибо.
← →
stud (2003-11-03 10:48) [26]пардон, точно не выйдет
нужно где-то так.
i=1;
for SELECT pol1,.... , poln FROM table
where (id=zn)
into :pol1,...,poln
do
begin
if (i=1) then pole1=
if (i=n) then polen=
i=i+1;
end
suspend;
это для одного наименовая
← →
stud (2003-11-03 10:48) [27]пардон, точно не выйдет
нужно где-то так.
i=1;
for SELECT pol1,.... , poln FROM table
where (id=zn)
into :pol1,...,poln
do
begin
if (i=1) then pole1=
if (i=n) then polen=
i=i+1;
end
suspend;
← →
Zacho (2003-11-03 10:56) [28]
> stud © (03.11.03 10:48) [27]
Ну можно и примерно так. Но с while гораздо проще. Зачем городить кучу последовательных FOR SELECT, если все можно сделать в одном цикле ?
Все, пора завязывать с этой веткой, все равно практического смысла это почти не имеет.
← →
stud (2003-11-03 10:57) [29]это точно. понедельник день не легкий
← →
супер дятел (2003-11-03 21:59) [30]/ http://www.osp.ru/win2000/sql/2001/02/665.htm
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.01 c