Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.24;
Скачать: CL | DM;

Вниз

Строки стали столбцами   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.028 c
1-78888
GH@ST
2003-11-13 10:50
2003.11.24
Кто нибудь программировал MS Agent?


14-79129
MPS
2003-11-01 15:07
2003.11.24
Группы новостей


1-79034
Ragazor
2003-11-13 16:11
2003.11.24
КАК перевести Pchar to string?


1-78974
Armen
2003-11-13 17:53
2003.11.24
How to debug ISAPI DLL s on Windows 2003 with IIS6


8-79066
my4ga
2003-07-29 10:59
2003.11.24
Озвучить текст