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

Вниз

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

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

Наверх




Память: 0.51 MB
Время: 0.017 c
2-1206337658
beglec
2008-03-24 08:47
2008.04.20
Удаление данных из потока TMemoryStream


2-1206211049
Viktor
2008-03-22 21:37
2008.04.20
Как создать отчёт из 2-х таблиц в Quick Reports?


2-1206440513
031178
2008-03-25 13:21
2008.04.20
Помогите плиз...


3-1196068794
Paradise
2007-11-26 12:19
2008.04.20
Перекрытие временных периодов


15-1204975614
Михаил
2008-03-08 14:26
2008.04.20
Диалог выбора типа линии