|
Помогите с запросом
|
|||
---|---|---|---|
#18+
есть грубо три таблицы: две - это справочники товаров(допустим 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 что-то типа: "без карты" и т.д. Как мне построить запрос? Огромедное спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2002, 13:01 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2002, 18:46 |
|
|
start [/forum/topic.php?fid=58&msg=32021230&tid=2120076]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 147ms |
0 / 0 |