Я
Ягодка
Добрый вечер, уважаемые форумчане! :lovecodeby:
У меня есть БД (создана в MS Access), схема данных которой изображена на рисунке "bd.jpg".
Там есть таблицы "Поставщики", "Ремонт", "Оборудование". Эти таблицы самые важные) Мне необходимо заполнить таблицу StringGrid следующими данными: "№ поставщика", "Наименование поставщика", "Общее количество техники", "Общая продолжительность гарантии", "Общая стоимость ремонта". Но поставщики-то у меня есть хорошие и нехорошие
Хорошие поставщики не входят в таблицу "Ремонт" моей БД, а нехорошие-в неё заносятся. Проблема в том, что тем поставщикам, кто не входит в таблицу "Ремонт", нужно в поле "Общая стоимость ремонта" в StringGrid-е присвоить значение "0" (они же хорошие и мы не потратили на ремонт их техники наши денежки )
Я смогла сделать следующее - это изображено на скрине моего приложения "exe.jpg":
Отбираются поставщики, чьё оборудование сломалось, и сумма затраченных на ремонт денег.
Это делается с помощью текста запроса:
Отбираются поставщики, чьё оборудование не сломалось.
Это делается с помощью текста запроса:
Отбираются все поставщики и общее количество техники и общая продолжительность гарантии, которую они нам предоставили.
Это делается с помощью текста запроса:
В StringGrid я сумела занести только "№ поставщика", "Наименование поставщика", "Общее количество техники", "Общая продолжительность гарантии", с помощью вот этого кода:
Но как запихнуть последним столбцом в StringGrid поле "Общая стоимость ремонта", да ещё чтоб соответствующим нехорошим поставщикам присваивалась сумма денег, которые мы потратили, ремонтируя их барахло, а хорошим поставщикам-присвоились просто нолики - вот это я не знаю :wha:
Очень рассчитываю на вашу помощь!
П.с.: и кстати, когда жму на кнопку - в StringGrid кроме нужных мне значений почему-то ещё пристраиваются несколько лишних пустых строк :angry2: Как от этого избавиться?
П.п.с.: Всем заранее спасибо за отклики
Если я сегодня вам не отвечаю в теме - это не значит что я про вас забыла, просто скоро уйду от компа-важные дела
Если нужен будет проект - выложу!
У меня есть БД (создана в MS Access), схема данных которой изображена на рисунке "bd.jpg".

Там есть таблицы "Поставщики", "Ремонт", "Оборудование". Эти таблицы самые важные) Мне необходимо заполнить таблицу StringGrid следующими данными: "№ поставщика", "Наименование поставщика", "Общее количество техники", "Общая продолжительность гарантии", "Общая стоимость ремонта". Но поставщики-то у меня есть хорошие и нехорошие
Хорошие поставщики не входят в таблицу "Ремонт" моей БД, а нехорошие-в неё заносятся. Проблема в том, что тем поставщикам, кто не входит в таблицу "Ремонт", нужно в поле "Общая стоимость ремонта" в StringGrid-е присвоить значение "0" (они же хорошие и мы не потратили на ремонт их техники наши денежки )
Я смогла сделать следующее - это изображено на скрине моего приложения "exe.jpg":

Отбираются поставщики, чьё оборудование сломалось, и сумма затраченных на ремонт денег.
Это делается с помощью текста запроса:
Код:
Select
[Поставщик].[№ поставщика], [Поставщик.Наименование поставщика],
sum ([Ремонт].[Стоимость]) as [Общая стоимость ремонта]
from [Оборудование], [Поставщик], [Ремонт]
where [Оборудование].[№ серийный]=[Ремонт].[№ серийный]
and [Поставщик].[№ поставщика]=[Оборудование].[№ поставщика]
group by [Поставщик].[№ поставщика],
[Поставщик].[Наименование поставщика]
Это делается с помощью текста запроса:
Код:
Select [Оборудование].[№ серийный], [Оборудование].[Наименование],
[Оборудование].[Количество], [Оборудование].[Стоимость],
[Оборудование].[Продолжительность гарантии],
[Поставщик].[№ поставщика], [Поставщик.Наименование поставщика]
from [Оборудование], [Поставщик]
where [№ серийный] not in (Select [№ серийный] from [Ремонт])
and [Поставщик].[№ поставщика]=[Оборудование].[№ поставщика]
order by [Поставщик].[№ поставщика]
Это делается с помощью текста запроса:
Код:
select [Поставщик].[№ поставщика],
[Поставщик].[Наименование поставщика],
sum([Оборудование].[Количество]) as [Общее количество],
sum ([Оборудование].[Продолжительность гарантии]) as [Общая гарантия]
from [Оборудование], [Поставщик]
where [Поставщик].[№ поставщика]=[Оборудование].[№ поставщика]
group by [Поставщик].[№ поставщика],
[Поставщик].[Наименование поставщика]
Код:
var
i,j:integer;
begin
j := 1;
DBGrid3.DataSource.DataSet.First;
while not DBGrid3.DataSource.DataSet.Eof do
begin
for i := 0 to DBGrid3.Columns.Count - 1 do
begin
StringGrid1.Cells[i, j] := DBGrid3.DataSource.DataSet.Fields[i].AsString;
end;
Inc(j);
DBGrid3.DataSource.DataSet.Next;
StringGrid1.RowCount:=StringGrid1.RowCount + 1;
end;
StringGrid1.RowCount:=StringGrid1.RowCount -1;
end;
Очень рассчитываю на вашу помощь!
П.с.: и кстати, когда жму на кнопку - в StringGrid кроме нужных мне значений почему-то ещё пристраиваются несколько лишних пустых строк :angry2: Как от этого избавиться?
П.п.с.: Всем заранее спасибо за отклики

