Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите с запросом / 2 сообщений из 2, страница 1 из 1
22.01.2002, 13:01
    #32021230
Andrew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
есть грубо три таблицы: две - это справочники товаров(допустим t1) и дисконтных карт(t2), третья (t3) - журнал операций. Надо построить запрос к t3 так, чтобы вместо идентификаторов (id) карт вернулись номера карт. Что-то вроде Lookup поля в Delphi. Принципиально я знаю, как это сделать.

select t1.name as [Name_Tovar],
t2.num as [Card_Number]и далее др.поля
from t3
inner join t1 on t3.id_tovar=t1.id
inner join t2 on t3.id_card=t2.id

и т.д. И будет все хорошо, НО!
У меня необязательно к заполнению поле t3.id_card, а в этом случае мой запрос вообще не выдает строку, т.к. упирается в ошибку. А я хочу, чтобы в этом случае он выдал строку где пустой id_card, но написал в столбце Card_Number что-то типа: "без карты" и т.д. Как мне построить запрос?

Огромедное спасибо!
...
Рейтинг: 0 / 0
22.01.2002, 18:46
    #32021255
Antei
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
select t1.name as [Name_Tovar],

/*если t2.num varchar или char*/
isnull(t2.num, 'no card') as Card_Number
/*в противном случае*/
isnull(cast(t2.num as varchar(20)), 'no card') as Card_Number

from t3
inner join t1 on t3.id_tovar=t1.id

left outer join t2
on t3.id_card=t2.id

Советую просмотреть типы join'ов в BOL
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите с запросом / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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