|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
05.11.2006, 22:29 | #11 |
Пользователь
Регистрация: 01.11.2006
Сообщений: 22
|
Здесь возникли проблемы с написанием кода
|
05.11.2006, 22:47 | #12 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
Познавая других, мы познаем себя.
С'est la vie... |
05.11.2006, 23:02 | #13 |
Пользователь
Регистрация: 01.11.2006
Сообщений: 22
|
|
05.11.2006, 23:29 | #14 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
S:=' SELECT Avto.Inv, Avto.Marka, AVTO.COST'
with Query1 do begin Close; SQL.Clear; SQL.Add('SELECT Auto.inv, Azs.inv'); SQL.Add('FROM "avto.DB" Avto, "AZS.DB" Azs'); SQL.Add('WHERE'); SQL.Add('(Azs.Inv = Auto.inv)'); SQL.Add('ORDER BY Inv'); Open; end; if Query1.RecordCount <> 0 then S:=S+ '+sum(azs.vl*fprice.price)'; И продолжай в том же дуже.
Познавая других, мы познаем себя.
С'est la vie... |
06.11.2006, 00:06 | #15 | |
Пользователь
Регистрация: 01.11.2006
Сообщений: 22
|
Цитата:
s не изменится и нарушится структура таблицы. |
|
06.11.2006, 09:13 | #16 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
Здесь нужно приписать пару строк...
SQL.Add('FROM "avto.DB" Avto, "AZS.DB" Azs'); SQL.Add('WHERE'); SQL.Add('(Auto.inv = '+*твоя переменная*')'); SQL.Add('WHERE'); SQL.Add('(Azs.Inv = Auto.inv)'); SQL.Add('ORDER BY Inv'); Тогда Query1.RecordCount будет проверять существование в базе Azs номера твоей машины - если такового нет, то он просто не будет суммировать нулевой параметр - первоисточник проблемы в расчетах.
Познавая других, мы познаем себя.
С'est la vie... |
06.11.2006, 13:44 | #17 |
Пользователь
Регистрация: 01.11.2006
Сообщений: 22
|
Что-то я не разберусь. Вот ещё одну идею подбросили
SELECT Avto.Inv, Avto.Marka, AVTO.COST + (SELECT sum(azs.vl*fprice.price) FROM azs, fprice WHERE avto.inv=azs.inv and azs.fuel=fprice.fuel) + (SELECT SUM(REMONT.COST) FROM remont WHERE avto.inv=remont.inv) FROM avto Но в столбце общих затрат ячейки пустые |
06.11.2006, 14:01 | #18 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
а не проще сначала брать значения из таблиц, а потом ими оперировать: код будет больше, зато понятней и на скорости я думаю это не отобразится.
Познавая других, мы познаем себя.
С'est la vie... |
06.11.2006, 14:08 | #19 |
Пользователь
Регистрация: 01.11.2006
Сообщений: 22
|
ну да, пожалуй проще.
Query2.SQL.Text:=('SELECT Azs.Inv, sum (azs.vl*fprice.price) as Стоимость FROM "azs.DB" Azs, "Fprice.DB" Fprice where azs.fuel=fprice.fuel group by azs.inv'); query4.SQL.Text:='select inv,sum(cost) from remont group by inv;'; query1.SQL.Text:='select inv,marka,cost from avto;'; for i:=1 to query1.recordcount do begin query1.Close; for j:=1 to query2.RecordCount do begin if query1.FieldByName('inv').AsInteger =query2.FieldByName('inv').AsIntege r then cost:=cost+query2.FieldByName('Стои мость').AsFloat; query2.Next; end; query2.First; query1.SQL.Text:='select inv,marka,cost+'''cost''' from avto;'; query1.Next; end; ...хотя возникла проблема в последней строке с +cost. Последний раз редактировалось Nikola; 06.11.2006 в 21:27. |
06.11.2006, 22:00 | #20 |
Пользователь
Регистрация: 01.11.2006
Сообщений: 22
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запросы 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 |