Главная страница
    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.041 c
1-1105332216
Ray Eagle
2005-01-10 07:43
2005.01.23
интеграция отчета из Rave Reports


3-1103404096
Shamansky
2004-12-19 00:08
2005.01.23
Как совместить Dbgrid и dbcheckbox


6-1099292621
Ozone
2004-11-01 10:03
2005.01.23
LoadFromStream


1-1104926082
zt50
2005-01-05 14:54
2005.01.23
Переименовать файл


14-1104786470
KilkennyCat
2005-01-04 00:07
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский