1 / 1 / 0
Регистрация: 03.07.2006
Сообщений: 56
1

Запрос на подсчет суммы

19.01.2007, 11:31. Показов 6160. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Мне надо создать такой набор данных, в котором после кождого месяца должна считаться сумма и после каждого квартала тоже должно считаться сумма. У меня получается вот такой запрос:
SQL
1
2
3
4
5
6
7
8
9
10
SELECT 1 AS sort, YEAR(dataprov) AS nYear, MONTH(dataprov) AS nMonth, Квартал, Число1,  Число2
FROM othet
UNION 
SELECT 3 AS sort, NULL, NULL, NULL, SUM(Число1), SUM(Число2)
FROM othet
UNION 
SELECT 2 AS sort, YEAR(Дата) AS nYear, MONTH(Дата) AS  nMonth, квартал, SUM(Число1), SUM    (Число2)
FROM othet
GROUP BY  YEAR(Дата), MONTH(Дата), квартал
ORDER BY  nYear, nMonth, квартал, sort
Но почему то суммы считаются только за месяца, а за квартал не считаются.
Я пробывал вставлять в sort3 - переменную [квартал], тоже не идет.
Подскажите пожалуйста. Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2007, 11:31
Ответы с готовыми решениями:

Запрос на подсчет суммы с двух таблиц
Доброго времени суток) Есть бд сервис центр, для запроса нужны 4 таблицы - т.заказы(код_заказа,...

Подсчет суммы
Допустим есть две связанные таблицы Table1 Id| Some 1| A 2| B 3| C 4| D 5| E 6| F

Подсчет суммы нескольких строк в столбец
Добрый день. В sql не силен, делаю простую морду на c++ builder для обработки таблиц (бд на ms sql...

Запрос на подсчет выпускников
Здравствуйте, нужна помощь в создании запроса: есть таблица с названиями учебных заведений, в...

3
1 / 1 / 0
Регистрация: 26.07.2006
Сообщений: 43
19.01.2007, 19:48 2
Испoльзуйте With Rollup oпрерaтoр при пoдсчёте суммы:
SQL
1
2
3
SELECT 2 AS sort, YEAR(Дата) AS nYear, MONTH(Дата) AS  nMonth, квартал, SUM(Число1), SUM    (Число2)
FROM othet
GROUP BY  YEAR(Дата), MONTH(Дата), квартал WITH Rollup
0
1 / 1 / 0
Регистрация: 03.07.2006
Сообщений: 56
22.01.2007, 09:54  [ТС] 3
Так ничего не выходит, суть проблемы в том что мне нужно чтобы сначала например шли данные затем после каждого месяца считалась сумма [сумма1] [сумма2], потом опять шли данные, потом считалась сумма также за месяц и за квартила и после этого опять данные.
Например:
sort год мес квартал сумма1 сумма2
1 2007 1 1 1 2
1 2007 1 1 1 2
<FONT style="BACKGROUND-COLOR: #dddd55 2 2007 NULL NULL 2 4
1 2007 2 1 1 2
1 2007 2 1 1 2
<FONT style="BACKGROUND-COLOR: #dddd55 2 2007 NULL NULL 2 4
1 2007 3 1 1 2
1 2007 3 1 1 2
<FONT style="BACKGROUND-COLOR: #dddd55 2 2007 NULL NULL 2 4

<FONT style="BACKGROUND-COLOR: #ff1111 3 2007 NULL NULL 6 12
Вот такой вот набор данных надо получить. Но у меня выходит только по месяцам упарядочить, а чтобы после 3 месяцев(т.е. квартала) тоже сумма считалось и упорядочивалась как надо, вот это и не получается.
0
1 / 1 / 0
Регистрация: 26.07.2006
Сообщений: 43
22.01.2007, 21:20 4
Я нaдеюсь Вы смoжете применить этoт пример:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
CREATE TABLE #tmp(
[MONTH] INT,
[Quarter] INT,
[YEAR] INT,
[Num1] INT,
[Num2] INT)
INSERT INTO #tmp 
VALUES(1,1,2006,10,5)
INSERT INTO #tmp 
VALUES(1,1,2006,5,10)
INSERT INTO #tmp 
VALUES(2,1,2006,10,5)
INSERT INTO #tmp 
VALUES(2,1,2006,5,10)
INSERT INTO #tmp 
VALUES(3,1,2006,10,5)
INSERT INTO #tmp 
VALUES(3,1,2006,5,10)
INSERT INTO #tmp 
VALUES(4,2,2006,10,5)
INSERT INTO #tmp 
VALUES(4,2,2006,5,10)
INSERT INTO #tmp 
VALUES(5,2,2006,10,5)
INSERT INTO #tmp 
VALUES(5,2,2006,5,10)
INSERT INTO #tmp 
VALUES(6,2,2006,10,5)
INSERT INTO #tmp 
VALUES(6,2,2006,5,10)
INSERT INTO #tmp 
VALUES(7,3,2006,10,5)
INSERT INTO #tmp 
VALUES(7,3,2006,5,10)
INSERT INTO #tmp 
VALUES(8,3,2006,10,5)
INSERT INTO #tmp 
VALUES(8,3,2006,5,10)
INSERT INTO #tmp 
VALUES(9,3,2006,10,5)
INSERT INTO #tmp 
VALUES(9,3,2006,5,10)
INSERT INTO #tmp 
VALUES(10,4,2006,10,5)
INSERT INTO #tmp 
VALUES(10,4,2006,5,10)
INSERT INTO #tmp 
VALUES(11,4,2006,10,5)
INSERT INTO #tmp 
VALUES(11,4,2006,5,10)
INSERT INTO #tmp 
VALUES(12,4,2006,10,5)
INSERT INTO #tmp 
VALUES(12,4,2006,5,10)
SELECT 1 AS [Sort], *
FROM #tmp
UNION 
SELECT DISTINCT [Sort], isnull([MONTH], 13) [MONTH],
isnull([Quarter], 5) [Quarter], [YEAR], Num1, Num2
FROM
(SELECT 2 AS [Sort],
[MONTH], [Quarter], [YEAR],
SUM(Num1) Num1, SUM(Num2) Num2
FROM #tmp
GROUP BY [MONTH], [Quarter], [YEAR]
WITH cube) AS sums
WHERE ([YEAR] IS NOT NULL) 
AND (([Quarter] IS NULL AND [MONTH] IS NULL) OR ([Quarter] IS NOT NULL))
ORDER BY 4,3,2 
 
DROP TABLE #tmp
0
22.01.2007, 21:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2007, 21:20
Помогаю со студенческими работами здесь

Запрос на автоматический подсчет
Всем привет! Разрабатываю БД (MS SQL Server 2008) + приложение (Delphi), подключение типа ADO. ...

Запрос к БД, выборка записей и подсчет сумм
Не получается никак запрос слепить... к тому же в MS SQL нельзя вложенные агрегаты делать......

Запрос на подсчет одинаковых значений поля с учетом соответствия во втором
Добрый день, Делаю, например запрос SELECT d.id_supplier, d.id_product FROM Delivery d ...

Запрос в БД на подсчет суммы значений и группировкой
Добрый вечер, уважаемые форумчане! Помогите сделать правильный запрос... Есть запрос в БД: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru