Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];

Вниз

ПРИВЕТ ВСЕМ!!! Помоготе построить запрос:   Найти похожие ветки 

 
@andrew   (2002-01-22 15:30) [0]

есть грубо три таблицы: две - это справочники товаров(допустим 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 что-то типа: "без карты" и т.д. Как мне построить запрос?

Огромедное спасибо!

Или подскажите: может есть неплохой специальный форум по SQL?


 
Delirium   (2002-01-22 16:08) [1]

если я правильно понял, то ниже следующее, а сайт - www.sql.ru

select t1.name as Name_Tovar,
isNull(t2.num,"без карты") as Card_Number
from t3
inner join t1 on t3.id_tovar=t1.id
right join t2 on t3.id_card=t2.id


 
@andrew   (2002-01-22 16:39) [2]

нет не совсем то.
пример.
t2 t1
| id | num | | id | name |
| 1 | номер1 | | 1 | носки |
| 2 | номер2 | | 2 | ботинки |

t3
| id | id_tovar | id_card | что-то там........|
| 1 | 1 | 2 | -------------
| 2 | 1 | 1 | ----------
| 3 | 2 | 1 | ---------------
| 4 | 2 | NULL | -------------

Так вот хочу, чтобы запросом вернулось
| id | Name_Tovar | Card_Number | что-то там......|
| 1 | носки | номер2 |-------------
| 2 | носки | номер1 |-------------
| 3 | ботинки | номер1 |------------
| 4 | ботинки | без карты |-----------

Вот...
Мой запрос вернет вообще не вернет строку 4, не говоря о том, что чего-то там напишет.


 
Delirium   (2002-01-22 16:58) [3]

Если t2.num уже символьное, то Convert не нужен

select
t2.id,
t1.Name as Tovar_Name,
isNull(Convert(VarChar,t2.num),"без карты") as Card_Number
from t3
left join t1 on t3.id_tovar=t1.id
left join t2 on t3.id_card =t2.id


 
Спасибо   (2002-01-22 17:15) [4]

Удалено модератором



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.004 c
3-42642
labert
2002-01-15 18:51
2002.02.14
беда с BDE


14-42829
навичек
2001-12-24 04:22
2002.02.14
ADO Provider потеряся


1-42714
DenKop
2002-01-30 23:17
2002.02.14
Сохранение иерархической структуры.


14-42844
Oleg Gashev
2001-12-24 22:43
2002.02.14
С Новым Годом!!!


1-42758
ТеньЛуны
2002-01-29 23:43
2002.02.14
Need help!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский