|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
30.10.2006, 13:00 | #1 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
SQL - запросы в Delphi
anaid
База данных в Access, пользовательский интерфейс в Delphi. Необходимо, чтобы при нажатии на кнопку, происходило суммирование данных (денежн.) по заданному критерию (временной интервал). Когда пишу запрос для события Button1Click: ADOQUERY1.SQL.Add('SELECT Sum(Round([Balansov_stoimost]*[Kolichestvo])) AS Ostatok'); ADOQUERY1.SQL.Add('FROM OM_1_2_Perechen_produkcii_na_sklade '); ADOQUERY1.SQL.Add('WHERE [Tekushaya_data]>= #10/05/1990# Выскакивает ошибка Access violation at adress 1B041FC6 in module msjet40.dll Virtson 1) Adoconnection должен быть активным 2) [Tekushaya_data] пиши без [ ] 3) еще нужно группировать по полю, по которому суммируешь GROUP BY ... |
01.11.2006, 15:22 | #2 |
Пользователь
Регистрация: 01.11.2006
Сообщений: 22
|
В проектируемой базе не могу выполнить запрос , где данные берутся из 2-х таблиц, в результате хотел бы вывести таблицу с 2-мя полями из 1-й таблицы и 1 поле из второй, но выскакивает ошибка.
Может для QUERY что-то в свойствах не так? Вот код: IF COMBOBOX1.ItemIndex=0 then begin query1.SQL.Add(' SELECT Avto.Инвентарный_номер, Avto.Марка, SUM( Azs.Выдано_литров * Fprice.ЦЕНА )'); query1.SQL.Add(' FROM "avto.DB" Avto'); query1.SQL.Add(' INNER JOIN "AZS.DB" Azs'); query1.SQL.Add(' ON (Avto.Инвентарный_номер = Azs.Инвентарный_номер)'); query1.SQL.Add(' INNER JOIN "Fprice.db" Fprice'); query1.SQL.Add(' ON (Azs.топливо = Fprice.топливо)'); query1.SQL.Add(' BY Avto.Инвентарный_номер, Avto.Марка'); end; |
02.11.2006, 08:41 | #3 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
1)что это значит? может 'ORDER BY'..
2) нужно группировать ! если используешь SUM()
Берегите друг друга!
|
05.11.2006, 15:53 | #4 |
Пользователь
Регистрация: 01.11.2006
Сообщений: 22
|
|
05.11.2006, 16:13 | #5 |
Пользователь
Регистрация: 01.11.2006
Сообщений: 22
|
Ну вот, ещё одна проблема: теперь нужно из четырёх таблиц вывести одну. Таблицы такие:
1 avto.DB<Avto.Inv, Avto."Date", Avto.Cost, Avto.Marka>, 2 AZS.DB<Azs.Nvp, Azs.Inv, Azs.Fuel, Azs.Vl>, 3 Fprice.DB<Fprice.Fuel, Fprice.Price>, 4 remont.DB<Remont.Inv, Remont.Crack, Remont.Cost> нужно сформировать: <avto.inv,avto.marka,cost> , где cost - общие затраты на авто с инвентарным ном. avto.inv, которое получается путём суммирования затрат на топливо(sum(azs.vl*fprice.price)) , ремонт(remont.cost) и покупку(avto.cost). Вот код моего запроса: SELECT Avto.Inv, Avto.Marka, sum(azs.vl*fprice.price)+SUM(REMONT .COST)+AVTO.COST FROM "avto.DB" Avto, "AZS.DB" Azs, "Fprice.DB" Fprice, "remont.DB" Remont where avto.inv=azs.inv and avto.inv=remont.inv and azs.fuel=fprice.fuel group by avto.inv, avto.marka Но подсчитывает неправильно, проверил вручную, можно что-то исправить или добавить, как вы думаете? |
05.11.2006, 17:32 | #6 | |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
...
Цитата:
группировка по marka лишьня возможно
Берегите друг друга!
|
|
05.11.2006, 20:34 | #7 |
Пользователь
Регистрация: 01.11.2006
Сообщений: 22
|
|
05.11.2006, 21:14 | #8 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
А если один из этих параметров нулевой, то программа начинает выдавать не тот ответ?
Познавая других, мы познаем себя.
С'est la vie... |
05.11.2006, 21:39 | #9 |
Пользователь
Регистрация: 01.11.2006
Сообщений: 22
|
Вообще в моей БД авто не может только ремонтироваться либо только заправляться. Но если это так, то расчет для авто не будет сделан. Но как тогда быть , если авто имеет только стоимость покупки?
|
05.11.2006, 21:57 | #10 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
пробуй перед просчетом суммы формировать запрос к базе по параметрам. проверять значение ячейки, если не нулевое, то к строке добавляем запрос на значение ячейки. в итоге получаем запрос к базе со строковой переменной, в которой нет нулевых параметров, итог: вычисление верно.
я так думаю.
Познавая других, мы познаем себя.
С'est la vie... |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запросы SQL в Delphi | antoni | БД в Delphi | 13 | 02.09.2008 00:53 |
Запросы к БД | xDjarx | БД в Delphi | 6 | 14.05.2008 17:04 |
Многотабличные запросы! (модификация данных). MSSQL +Delphi | MoGiLsHiKK | БД в Delphi | 1 | 25.12.2007 16:21 |
Запросы к БД | H@Z@RD | Общие вопросы Delphi | 3 | 28.03.2007 01:39 |