Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.23;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
14-1104869198
olookin
2005-01-04 23:06
2005.01.23
Chelsea-Middlsborough


14-1104925886
syte_ser78
2005-01-05 14:51
2005.01.23
Как прогнать переменные?


1-1105077787
schooll
2005-01-07 09:03
2005.01.23
О захвате экрана


1-1105516584
Zilog
2005-01-12 10:56
2005.01.23
Посоветуйте статью, где описано как писать плагины для своей прог


9-1097483896
utyf
2004-10-11 12:38
2005.01.23
как исправить directdraw.pas для delphi7 или где взять работающи?