Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.04.20;
Скачать: [xml.tar.bz2];

Вниз

Запрос по соединению данных.   Найти похожие ветки 

 
Xmen   (2008-03-24 06:45) [0]

Привет мастерам.
У меня возникла такая проблема даже незнаю как описать. Такесть у меня 2 таблицы мастер(1)-детал(1). В одном список документов а втором кому этот документ назначен для прочтения. Нужно сделат такой запрос чтобы в одной строке был данные с мастер таблицы и в конце одном поле показывал бы данные с второй таблицы.
1 табл.
ID            Doc_name                    Doc_Date              Doc_type
---------------------------------------------------------------
1              письмо1                     21.03.2008             письмо
2              приказ1                     22.03.2008             приказ
3              письмо2                     22.03.2008             письмо

2 табл.
ID             Main_id              FIO                        Content
---------------------------------------------------------------
1                 1                Петров А.С.           на расмотрение
2                 2                Ким Л.А.               на выполнение
3                 2                Иванов Н.Н.          на выполнение
4                 2                Попов Р.Д.            на рассмотрение
5                 3                Иванов Н.Н.          для ознакомления

результат должен быт такой
ID  Doc_name     Doc_date          FIO_Content
2  приказ1        22.03.2008        Ким Л.А. на выполнения,         Иванов Н.Н. на выполнения, Попов Р.Д.  на рассмотрения


 
Johnmen ©   (2008-03-24 09:00) [1]

Пиши ХП.


 
Sergey13 ©   (2008-03-24 09:02) [2]

ИМХО, без хранимой процедуры никак.
Вот только стОит ли стараться? Если "поле" получится очень большим начнутся проблемы с отображением.


 
Sergey13 ©   (2008-03-24 09:05) [3]

+
Я так понимаю это документооборот какой то?
У каждой записи второй таблицы могут (даже должны) быть свои даты. Иначе весь учет теряет смысл без хронологии.


 
Sergey13 ©   (2008-03-24 09:08) [4]

+
И отправитель еще должен быть во второй таблице.


 
Xmen   (2008-03-24 09:41) [5]

Да это так это таблица для документооборота, а как это реализовать в ХП я еще не исползовал их. Обясните это в примере если возможно. так как это прого для дипломной работе то испольнителе могут быть макс 5 чел, разумеется в приделах 255 символов для отображения. Это строка нужно для ввода в отчет.


 
Sergey13 ©   (2008-03-24 10:08) [6]

> [5] Xmen   (24.03.08 09:41)
> так как это прого для дипломной работе то испольнителе могут быть макс 5 чел

Это неправильно - писать по разному для диплома и не для диплома. Пиши всегда правильно - меньше путаться придется. Кроме того - завалят ведь на защите диплома, если в комиссии не круглые идиоты будут. Скажут - чему ж мы тебя учили то 5 лет?

> а как это реализовать в ХП я еще не исползовал их

На сайет ibase.ru много всякого материала по ИБ/ФБ.


 
Xmen   (2008-03-24 10:15) [7]

а можно это то что я спрашевал в FastReporte реализовать. У меня отчете там выходять, както видел что там тоже есть свой язык программирования или это уже сложно.


 
Sergey13 ©   (2008-03-24 10:23) [8]

> [7] Xmen   (24.03.08 10:15)

Можно В ФР. Перед печатью бенда заполняешь вручную переменную чем угодно.

Но неправильно это.


 
Xmen   (2008-03-24 10:36) [9]

да тогда покажите простую путь примером. Пожалуйста...


 
Xmen   (2008-03-24 15:14) [10]

Сделал так но выдал ощибку, не понял где сделал ощибку

CREATE PROCEDURE PR1 (
   main_id integer)
returns (
   pr_date varchar(255))
as
declare variable pr_date1 varchar(55);
begin
 /* Procedure Text */
 pr_date = "";
 for select e.executor_id||" "||e.control_date
 from incoming_executor e
 where e.incoming_id=:main_id
 into :pr_date1
 do
  begin
    if (:pr_date1 is not null) then pr_date = pr_date +  :pr_date1;
  end
 suspend;
end


 
Правильный_Вася   (2008-03-24 15:34) [11]


> выдал ощибку

ждем текст ошибки


 
Xmen   (2008-03-24 15:41) [12]

Текс такой
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
Dynamic SQL Error.
expression evaluation not supported.


 
Правильный_Вася   (2008-03-24 15:45) [13]

сделай явное приведение типов здесь:
e.executor_id||" "||e.control_date


 
Правильный_Вася   (2008-03-24 15:45) [14]

хотя ошибка, похоже, при неправильном вызове процедуры


 
Xmen   (2008-03-24 15:49) [15]

если я сделал
e.executor_id
все равно такая ощибка


 
Правильный_Вася   (2008-03-24 15:55) [16]

какие типы полей?
как вызываешь ХП?

> pr_date +  :pr_date1;

операция + не определена для строковых типов


 
Xmen   (2008-03-24 15:59) [17]

я же вверху писал с ХП незнаком просто гдето посмотрел код ХП и для себя настроил. как нужно сделать правильние


 
Правильный_Вася   (2008-03-24 16:15) [18]


>  с ХП незнаком

ознакомься, это не долго


 
Xmen   (2008-03-25 15:50) [19]

This operation is not defined for system tables.
unsuccessful metadata update.
STORE RDB$PROCEDURES failed.
lock conflict on no wait transaction.
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_21".

Что это за ошибка?


 
Johnmen ©   (2008-03-25 16:14) [20]


> Что это за ошибка?

На чём?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.04.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.06 c
15-1205062287
NL
2008-03-09 14:31
2008.04.20
mkv - что за расширение?


15-1204977441
alex
2008-03-08 14:57
2008.04.20
Посоветуйте компонент...


15-1204645484
Kerk
2008-03-04 18:44
2008.04.20
Скорость сетевого подключения


2-1206351890
operator
2008-03-24 12:44
2008.04.20
Оптимальный способ парсинга строк.


15-1204686710
Slider007
2008-03-05 06:11
2008.04.20
С днем рождения ! 5 марта 2008 среда





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский