Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.011 c
3-78844
Kinder
2003-10-29 19:53
2003.11.24
почему не происходит сортировки?


14-79182
Soft
2003-10-25 01:29
2003.11.24
Есть ли смерть после жизни?


4-79224
Aleksandr
2003-09-24 19:02
2003.11.24
Отчего мусор на экране после WinApiшного окна?


6-79072
aj_ua
2003-09-30 15:17
2003.11.24
Разрыв Dial-up соединения под Windows 2000


1-78889
limk
2003-11-14 18:36
2003.11.24
label





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский