Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запрос [Firebird]


Цукор5 ©   (2010-12-08 00:25:00) 

Здравствуйте. Направьте мои мысли в нужное русло.

Таблица продаж.
CREATE TABLE SALES (
   ID         INTEGER NOT NULL,
   DEVICE     INTEGER,  
   CODE       BIGINT,
   CDAY       DATE,
   COUNTSALE  INTEGER
);

Таблица товаров.
CREATE TABLE PRODUCT (
   ID      INTEGER NOT NULL,
   DEVICE  INTEGER,
   CODE    BIGINT,
   CDAY    DATE,
    NAME    VARCHAR(20) COLLATE PXW_CYRL
);

Задача: отобразить таблицу SALES добавив название товара (поле NAME). Но не всё так просто, нужно смотреть на дату в таблице PRODUCT.

Данные, чтобы стало яснее.
Таблица SALES
1 111 482001 01/12/10 2
2 111 482001 02/12/10 1
3 111 482001 03/12/10 1
4 111 482001 04/12/10 2

Таблица PRODUCT
1 111 482001 01/12/10 журн.Лиза№35
2 111 482001 03/12/10 журн.Лиза№36

В итоге должно получиться так:
1 111 482001 01/12/10 2 журн.Лиза№35
2 111 482001 02/12/10 1 журн.Лиза№35
3 111 482001 03/12/10 1 журн.Лиза№36
4 111 482001 04/12/10 2 журн.Лиза№36

Как быть? Создать третью таблицу (но что она даст?) или лучше и оптимальнее сделать всё в хранимой процедере? Предполагаю, что записей много будет и нужно оперативно отображать запрос.


Ega23   (2010-12-08 01:26:00) [1]

Select S. ...,  P. ....
from Sales S left join Products P on (....)
order by ....


Наверх

Титульная страница Поиск, карта сайта Написать письмо