powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / НЕРЕАЛЬНЫЙ ЗАПРОС
12 сообщений из 12, страница 1 из 1
НЕРЕАЛЬНЫЙ ЗАПРОС
    #32217608
Cnupum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит есть таблицы:
<B>Сотрудники:</B>
<I>код
фио
код из профессии
</I>

<B>Сдача</B>
<I>код
код сотрудника
код предмета
дата сдачи</I>

<B>предметы</B>
<I>код
наименование</I>

<B>професси</B>
<I>код
наименование</I>


<B>Внимание вопрос:</B>

как сделать запрос вот с такими полями:
код сотрудника, код профессии,дата сдачи 1 предмета, дата сдачи 2 предмета.......дата сдачи н-го предмета

т.е. поле в запросе береться из записи в таблице.
...
Рейтинг: 0 / 0
НЕРЕАЛЬНЫЙ ЗАПРОС
    #32217631
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Заполни TDecisionCube и получи данные по срезу сотрудник/предмет.
...
Рейтинг: 0 / 0
НЕРЕАЛЬНЫЙ ЗАПРОС
    #32217633
Alexander Lysenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую вложенные SQL запросы.
...
Рейтинг: 0 / 0
НЕРЕАЛЬНЫЙ ЗАПРОС
    #32217639
Cnupum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Lysenko

ну ... ну ну ... интересно а поподробнее , пжлста
...
Рейтинг: 0 / 0
НЕРЕАЛЬНЫЙ ЗАПРОС
    #32217645
Alexander Lysenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот тебе инфа как записывать вложенный SQL запрос
Код: plaintext
1.
Select ИМЯ_СТОЛБЦА [,ИМЯ_СТОЛБЦА] From ТАБЛИЦА1 [,ТАБЛИЦА2]
Where ИМЯ_СТОЛБЦА ОПЕРАТОР (Select ИМЯ_СТОЛБЦА [, ИМЯ_СТОЛБЦА] From ТАБЛИЦА1 [, ТАБЛИЦА2] Where)

Вот структура записи, ну можно конечно еще и сделать Нетривиальный запрос к таблицам, т.е. делать соединение таблиц в запросах.
...
Рейтинг: 0 / 0
НЕРЕАЛЬНЫЙ ЗАПРОС
    #32217660
Cnupum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose TDecisionCube Ни разу не юзал
научи ....

Alexander Lysenko

смысл вроде понятен, но реализовать на своем примере не могу ...
...
Рейтинг: 0 / 0
НЕРЕАЛЬНЫЙ ЗАПРОС
    #32217675
Alexander Lysenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
смысл вроде понятен, но реализовать на своем примере не могу ... , пожалуйста опиши подробнее какой запрос тебе надо выполнить, поконкретнее постараюсь помочь :)
Жду
...
Рейтинг: 0 / 0
НЕРЕАЛЬНЫЙ ЗАПРОС
    #32217689
Cnupum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит есть таблицы:
<b>Сотрудники:</b>
<i>код
фио
код из профессии
</iI>

<b>Сдача</b>
<i>код
код сотрудника
код предмета
дата сдачи</i>

<b>предметы</b>
<i>код
наименование</i>

<b>професси</b>
<i>код
наименование</i>


<b>Внимание вопрос:</b>

как сделать запрос вот с такими полями:
код сотрудника, код профессии,дата сдачи 1 предмета, дата сдачи 2 предмета.......дата сдачи н-го предмета

т.е. поле в запросе береться из записи в таблице.
...
Рейтинг: 0 / 0
НЕРЕАЛЬНЫЙ ЗАПРОС
    #32217716
Фотография Alexey Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых неплохо было бы знать СУБД (?)
Во-вторых запрос действительно нереален, поскольку неизвестно количество предметов.
Но, можно формировать запрос динамически:

1. Формируем основной запрос:
Код: plaintext
1.
2.
3.
RxQuery1.SQL.Text:=
SELECT P.ID AS PEPLE, P.JOB %TEST_FIELDS
FROM PEOPLE P
  %TEST_JOIN

Где PEOPLE - таблица сотрудников.
%TEST_FIELDS, %TEST_JOIN - макросы (см. RxLibrary -> RxQuery)

2. Заполняем макросы.
Для начала посмотрим на предметы:
Код: plaintext
1.
2.
3.
Query1.SQL.Text:=
SELECT S.ID
FROM SUBJECT S
ORDER BY S.ID

А теперь немного кода для заполнения макросов в запросе 1:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Query1.First;
RxQuery1.MacroByName('TEST_FIELDS').AsString:= '';
RxQuery1.MacroByName('TEST_JOIN').AsString:= '';
while not(Query1.Eof) do
  begin
    RxQuery1.MacroByName('TEST_FIELDS').AsString:=
      RxQuery1.MacroByName('TEST_FIELDS').AsString + ', T' +
      Query1.FieldByName('ID').AsString + '.TEST_DATE AS TEST_DATE_' +
      Query1.FieldByName('ID').AsString;
    RxQuery1.MacroByName('TEST_JOIN').AsString:=
      RxQuery1.MacroByName('TEST_JOIN').AsString +
      'LEFT OUTER JOIN TEST T' + Query1.FieldByName('ID').AsString +
      ' ON (T' + Query1.FieldByName('ID').AsString' + '.PEOPLE = P.ID AND T' +
      Query1.FieldByName('ID').AsString + '.SUBJECT = ' +
      Query1.FieldByName('ID').AsString + ') '
  end;
RxQuery1.Open;

...

Есть одно НО.
Таблица TEST (сдача) полачаю уникальна на: (PEOPLE (код сотрудника), SUBJECT (код предмета)).
Если нет RxLibrary, или не работаешь через BDE, то либо скачай Rx (бесплатно), либо подцепи идею и проделай эту операцию с обычным Query.
...
Рейтинг: 0 / 0
НЕРЕАЛЬНЫЙ ЗАПРОС
    #32217738
Cnupum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а база в ACCESS 97
...
Рейтинг: 0 / 0
НЕРЕАЛЬНЫЙ ЗАПРОС
    #32217760
Фотография Alexey Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, лишний апостроф поставил.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Query1.First;
RxQuery1.MacroByName('TEST_FIELDS').AsString:= '';
RxQuery1.MacroByName('TEST_JOIN').AsString:= '';
while not(Query1.Eof) do
  begin
    RxQuery1.MacroByName('TEST_FIELDS').AsString:=
      RxQuery1.MacroByName('TEST_FIELDS').AsString + ', T' +
      Query1.FieldByName('ID').AsString + '.TEST_DATE AS TEST_DATE_' +
      Query1.FieldByName('ID').AsString;
    RxQuery1.MacroByName('TEST_JOIN').AsString:=
      RxQuery1.MacroByName('TEST_JOIN').AsString +
      'LEFT OUTER JOIN TEST T' + Query1.FieldByName('ID').AsString +
      ' ON (T' + Query1.FieldByName('ID').AsString + '.PEOPLE = P.ID AND T' +
      Query1.FieldByName('ID').AsString + '.SUBJECT = ' +
      Query1.FieldByName('ID').AsString + ') '
  end;
RxQuery1.Open;


Access'97... :)
А что, разве сложно по аналогии сформировать строку St: string и Query.SQL.Text:= St?
...
Рейтинг: 0 / 0
НЕРЕАЛЬНЫЙ ЗАПРОС
    #32218616
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НЕРЕАЛЬНЫЙ ЗАПРОС
OLAP, однако.
Но если не хочется с ним заморачиваться и к базе можно подключится через ODBC, то проблема решается десятком кликов мышкой в Excel'e. Сводная таблица.

Или можно компоненту Pivot Table из Офиса в дельфу втянуть. Тогда прямо на форме можно.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / НЕРЕАЛЬНЫЙ ЗАПРОС
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]