Форум: "Базы";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];
ВнизКак сформировать запрос... Найти похожие ветки
← →
AndrewK (2002-04-02 16:52) [0]Уважаемые мастера, посоветуйте как быть.
Есть выборка:
Группа Изделие Кол-во Доля в общем кол-ве
Группа 1 Изделие 1 10 надо получить
Группа 1 Изделие 2 15 надо получить
Группа 1 Изделие 3 40 надо получить
Группа 2 Изделие 4 2 надо получить
Группа 2 Изделие 5 1 надо получить
Группа 2 Изделие 6 7 надо получить
Надо сделать отчет по группам. Доля считается как кол-во текущих изделий в группе деленное на общее число изделий в этой группе. Причем требуют затем отсортировать группы по суммарному количеству изделий в группе.
Может кто сталкивался с подобной задачей? С какой стороны надр подойти к решению?
← →
Lusha (2002-04-02 17:12) [1]Лично я бы создал VIEW
CREATE VIEW View1 AS
SELECT Группа1, SUM(Кол-во)
FROM Table1
GROUP BY Группа1
Ну, а дальше дешево и сердито один банальный SELECT...
← →
Johnmen (2002-04-02 17:30) [2]Придется реализовать несколько запросов...
Как реализовать - дело вкуса...
Ну а потом в программе описать логику взаимодействия...
← →
Mike S (2002-04-02 17:55) [3]Что-то вроде этого.
CREATE procedure Recalc
as
declare @SumAll int
select @SumAll = Sum(Кол-во) from Table where Grupa = Группа 1
update Table
set Доля = Кол-во/@SumAll
where Grupa = Группа 1
go
← →
Fay (2002-04-02 19:10) [4]Не проверял. Думаю в MSSQL прокатит.
SELECT
[Группа] = s1.[Группа],
[Изделие] = s1.[Изделие],
[Кол-во] = s1.[Кол-во по группе_изделию],
[Доля в общем кол-ве] = s1.[Кол-во по группе_изделию]/s2.[Кол-во по группе]
FROM
(SELECT
[Группа],
[Изделие],
[Кол-во по группе_изделию] = SUM([Кол-во])
FROM [Твоя таблица]
GROUP BY
[Группа],
[Изделие]
) s1 INNER JOIN
(SELECT
[Группа],
[Кол-во по группе] = SUM([Кол-во])
FROM [Твоя таблица]
GROUP BY [Группа]
HAVING SUM([Кол-во])>0
) s2 ON s1.[Группа] = s2.[Группа]
ORDER BY s1.[Кол-во по группе_изделию]
← →
Bachin (2002-04-02 20:51) [5]select
a.gr, a.it, a.ss, b.ss
from tab1 a,
(select gr, sum(IsNull(ss,0)) as ss from tab1 group by gr) b
where
a.gr = b.gr
order by b.ss desc
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c