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

Вниз

Вставка данных с использованием данных других полей   Найти похожие ветки 

 
cyborg ©   (2004-12-18 20:24) [0]

Помогите составить строку SQL запроса на вставку данных?
База Acess через компоненты ADO.

Нужно в таблицу "Приход" вставить номера (индексы) данных из других таблиц.

Написал это

             SQL.Clear;
             SQL.Add("INSERT INTO Приход( [Номер], [Номер раздела], [Номер товара], [Цена] )");
             SQL.Add("Values( "+ParsedStrings[1]+",");
->            SQL.Add("SELECT Номер FROM Раздел WHERE (Название=""+CurrentRazdel+""),");
             SQL.Add("SELECT Номер FROM Товар WHERE (Название=""+ParsedStrings[2]+""),");
             SQL.Add(ParsedStrings[4]+")");
             ExecSQL;

Ругается на первую строчку с селектом. Знаю что криво делаю :), но не знаю как прямо сделать.
В общем нужно вставить в таблицу "Приход" номера индексов (автоинкриментные поля) названий товара из других таблиц "Раздел" и "Товар".

Или как получить автоинкриментный индекс последней записи в базе?


 
sniknik ©   (2004-12-18 20:49) [1]

> Или как получить автоинкриментный индекс последней записи в базе?
@@IDENTITY


 
cyborg ©   (2004-12-18 20:57) [2]

С ошибкой разобрался, там оказывается в скобки запрос нужно помещать.
Ещё вопрос, в этом отборе может вернуться несколько запрошенных строк, так вот как указать, что нужно только одну строку возвращать, первую найденную?

> [1] sniknik ©   (18.12.04 20:49)

А куда его писать? Товар.@@IDENTITY, или как?


 
sniknik ©   (2004-12-18 21:02) [3]

SELECT @@IDENTITY
например (а вообще по смыслу где нужен)
следующей командой после инсерта


 
sniknik ©   (2004-12-18 21:03) [4]

> так вот как указать, что нужно только одну строку возвращать, первую найденную?
TOP 1


 
cyborg ©   (2004-12-18 22:52) [5]

Ещё вопрос.
Есть много текстовых записей, нужно отобрать все, но повторяющиеся чтобы были по одному разу.
Как сформулировать: SELECT field FROM table ?


 
sniknik ©   (2004-12-19 00:24) [6]

по разному можно DISTINCT, GROUP BY по контексту от того что нужно

p.s. если пользуешся SQL-лем желательно его хоть чуть чуть изучить.


 
cyborg ©   (2004-12-19 09:24) [7]


> p.s. если пользуешся SQL-лем желательно его хоть чуть чуть
> изучить.

Вот изучаю :), просто мне некоторая логика непонятня, типа команд Join и других подобных.


 
cyborg ©   (2004-12-19 09:46) [8]


> [6] sniknik ©   (19.12.04 00:24)

По GROUP BY работает. :)
Спасибо!


 
sniknik ©   (2004-12-19 12:23) [9]

а по DISTINCT значит нет? вообщето это более естественное решение для приведенного случая, GROUP BY всетаки предполагает еще дополнительно агрегатные поля где значения сгрупировання по нужному полю.


 
cyborg ©   (2004-12-20 08:29) [10]


> [9] sniknik ©   (19.12.04 12:23)

Да там как раз с сортировкой подходит.



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

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

Наверх





Память: 0.46 MB
Время: 0.033 c
14-1105120503
Narik
2005-01-07 20:55
2005.01.23
Как работать с компонентой WordDocument и с WordApplication???


14-1104847783
Кудесник
2005-01-04 17:09
2005.01.23
Подскажите программу для быстрый ввода символа...


14-1105004976
syte_ser78
2005-01-06 12:49
2005.01.23
try except


3-1103044733
Sergilov
2004-12-14 20:18
2005.01.23
Как при создании базы Access установить на неё пароль?


14-1104876175
Просто Джо
2005-01-05 01:02
2005.01.23
"Выравнивание вправо" в главном меню





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский