Привет, вообще парни помогите одержать победу над SQL
как мне правильно составить SQL запрос, вообщем задача такова:
есть 3 таблицы MS Access,
1-я: Называется SC
Поля
Key1=ключевое поле-счетчик
СК полное наименование = полное наименование компании
СК скоращенное наименование = соответсвенно сокращенное наименование
2-я: наз. TypeSH
поля
Key1 = аналогично пред-щей
Тип страхования = содержит види страх-я
3-я: наз. КВ
поля
Key1 - ....
Страховая компания = тип integer, содержит соответствующий номер записи в таб. SC в соответсвии с ее счетчкиком
Текущий = логическое
переменные SQL: :CK - содержит данные из SCBox.Text
DataModule2.KBQuery.Parameters.ParamByName('CK').V alue:=SCBox.Text;
Где SCBox это DBLookupComboBox указывающий на таблицу SC, поле "СК скоращенное наименование",
что такое DataModule и KBQuery думаю пояснять не нужно.
мне нужно выбрать из таблицы KB поле в котором поле "Страховая компания" будет равно полю "СК скоращенное наименование" из таблциы SC, и в котором поле "Текущий"(в таблице KB) будет равно true.
В SQLQuery пишу следующий запрос:
Код:
SELECT *
FROM KB outer
WHERE :CK = (SELECT [СК скоращенное наименование] FROM SC inner
WHERE Key1 LIKE outer.[Страховая компания]) AND Текущий = true;
в теория я думал что должен получить 1 строку, но при переводе QSLQuery в true он ругается что нашел ошибку в предложении FROM
Сразу извиняюсь за такую муть

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