Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как с помощью SQL запроса сделать что-то наподобие таблицы с LookUp'ами.(Чисто наSQL)

37K
06 июля 2008 года
russian_style
13 / / 06.07.2008
База у меня Access, язык Borland C++ Builder, соединяюсь через ADO.
Хотел отделить логику и реализацию. для этого написал классы имитирующие объекты хранимые в базе данных, с методами сохранения в базе. Классы обращаются к базе через SQL запросы. Поэтому мне нужен чистый SQL код для реализации следующего:
Таблица на основе 2 таблиц.
1)Клиенты
2)Тарифы

В клиентах есть два поля КодТарифаРасхода и КодТарифаПотерь. Тарифы берутся из таблицы потерь.

Если в базе Клиенты
один клиент с Ид=1981, ФИО="Максумов", КодТарифаРасхода="01", КодТарифаПотерь="02"
И
в базе тарифы 2 тарифа
1. КодТарифа="01", Тариф = 34 р.
2. КодТарифа="02", Тариф = 27 р.

Должно получится 1 запись:

Ид | ФИО | ТарифРасхода | ТарифПотерь|
1981 | Максумов | 34 р | 27 р. |

Буду рад если поможете.
8.2K
06 июля 2008 года
Ora-cool
211 / / 20.09.2007
Например, так
 
Код:
select K.Ид,
         K.ФИО,
         T1.Тариф ТарифРасхода,
         T2.Тариф ТарифПотерь
  from (Клиенты K
    left join Тарифы T1
    on K.КодТарифаРасхода = T1.КодТарифа)
    left join Тарифы T2
    on K.КодТарифаПотерь = T2.КодТарифа
  where K.Ид = 1981


Только не уверен, что в таком виде заработает на Accesse.
37K
06 июля 2008 года
russian_style
13 / / 06.07.2008
Цитата: Ora-cool
Например, так
 
Код:
select K.Ид,
         K.ФИО,
         T1.Тариф ТарифРасхода,
         T2.Тариф ТарифПотерь
  from (Клиенты K
    left join Тарифы T1
    on K.КодТарифаРасхода = T1.КодТарифа)
    left join Тарифы T2
    on K.КодТарифаПотерь = T2.КодТарифа
  where K.Ид = 1981


Только не уверен, что в таком виде заработает на Accesse.



Тут не обязательно выбирать по ключу(where K.Ид = 1981), я имел ввиду что записей с Ид=1981 не должно быть больше одного.
Распечатал дома попробую(Главное смысл). Результат сообщу. Спасибо

37K
08 июля 2008 года
russian_style
13 / / 06.07.2008
Спасибо способ предложенный "Ora cool"ом сработал.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог