1 / 1 / 1
Регистрация: 05.03.2013
Сообщений: 41

Подзапросы

28.03.2013, 15:12. Показов 1313. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Подскажите, пожалуйста, как мне посчитать сумму товара (Quantity), которая выводится с помощью подзапроса и сгруппировать по дате.
Извиняюсь, если не понятно объяснила.

В общем, есть запрос, который выводит дату и сумму:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT CONVERT(varchar, dbo.Sales.Datatime, 102),
(
 SELECT ROUND(CONVERT(real, SUM(Way.Quantity), 2), 0) AS Weight1
 FROM dbo.Way
 WHERE (AreaID = dbo.Sales.AreaID) AND (SALESID = dbo.Sales.SALESID)
) 
FROM dbo.Sales
INNER JOIN dbo.Location ON dbo.Sales.LocationID = dbo.Location.LocationID
WHERE (dbo.Sales.AreaID = 'vk') 
AND (dbo.Sales.Datatime <= GETDATE()) 
AND (dbo.Sales.Datatime >= '01.01.2013') 
ORDER BY CONVERT(varchar, dbo.Sales.Datatime, 102) ASC
Выводится так:
Дата---------Сумма
01.01.2013----100
02.01.2013----200
02.01.2013----300
02.01.2013----500
03.01.2013----600
03.01.2013----700

А надо:
Дата---------Сумма
01.01.2013----100
02.01.2013----1000
03.01.2013----1300


Написала запрос:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT CONVERT(varchar, dbo.Sales.Datatime, 102),
(
SELECT SUM(t.Weight1) AS Weight2 
FROM
  (
  SELECT ROUND(CONVERT(real, SUM(Way.Quantity), 2), 0) AS Weight1
  FROM dbo.Way
  WHERE (AreaID = dbo.Sales.AreaID) AND (SalesID = dbo.Sales.SalesID)
  ) AS t
)
FROM dbo.Sales
INNER JOIN dbo.Location ON dbo.Sales.LocationID = dbo.Location.LocationID
WHERE (dbo.Sales.AreaID = 'vk') 
AND (dbo.Sales.Datatime <= GETDATE()) 
AND (dbo.Sales.Datatime >= '01.01.2013') 
GROUP BY CONVERT(varchar, dbo.Sales.Datatime, 102)
ORDER BY CONVERT(varchar, dbo.Sales.Datatime, 102) ASC
Выдаёт ошибку, что:
Column 'dbo.Sales.AreaID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Column 'dbo.Sales.SalesID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.


Не совсем понимаю, почему так происходит?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.03.2013, 15:12
Ответы с готовыми решениями:

Запросы и подзапросы
Доброго времени суток, возникла задача такого рода: Есть две таблицы People и Orders, они имеют структуру, показанную во вложениях. ...

Вложенные подзапросы
Довольно сложный для понимания(моего) запрос. Помогите пожалуйста. есть таблица EXAM_MARKS c полями STUDENT_ID SUBJ_ID MARK ...

Подзапросы на отбор записей
Всем доброго времени суток! Прошу помощи с написанием запроса на выборку данных по условиям. Застопорилась и не понимаю куда дальше...

2
23 / 23 / 0
Регистрация: 25.03.2013
Сообщений: 46
28.03.2013, 16:01
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT dt, SUM(qty) qty
FROM
(
SELECT CONVERT(varchar, dbo.Sales.Datatime, 102) dt,
(
 SELECT ROUND(CONVERT(real, SUM(Way.Quantity), 2), 0) AS Weight1
 FROM dbo.Way
 WHERE (AreaID = dbo.Sales.AreaID) AND (SALESID = dbo.Sales.SALESID)
) qty
FROM dbo.Sales
INNER JOIN dbo.Location ON dbo.Sales.LocationID = dbo.Location.LocationID
WHERE (dbo.Sales.AreaID = 'vk') 
AND (dbo.Sales.Datatime <= GETDATE()) 
AND (dbo.Sales.Datatime >= '01.01.2013') 
)t
GROUP BY dt
ORDER BY dt ASC
Добавлено через 9 минут
Блин, всё-таки правильно прочитал. ИМХО, лучше будет переписать примерно так:

T-SQL
1
2
3
4
5
6
7
8
9
10
SELECT CONVERT(varchar, dbo.Sales.Datatime, 102) dt,
SUM(SELECT ROUND(CONVERT(real, SUM(Way.Quantity), 2), 0)) qty
FROM dbo.Sales s
INNER JOIN dbo.Location l ON s.LocationID = l.LocationID
LEFT JOIN dbo.Way w ON w.AreaID = s.AreaID AND w.SALESID = s.SALESID
WHERE (dbo.Sales.AreaID = 'vk') 
AND (dbo.Sales.Datatime <= GETDATE()) 
AND (dbo.Sales.Datatime >= '01.01.2013') 
GROUP BY CONVERT(varchar, dbo.Sales.Datatime, 102)
ORDER BY dt
1
1 / 1 / 1
Регистрация: 05.03.2013
Сообщений: 41
28.03.2013, 16:01  [ТС]
unfilled, Спасибо большое!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.03.2013, 16:01
Помогаю со студенческими работами здесь

Подзапросы в ограничителе CHECK
Всем привет! Столкнулся с такой проблемой: Допустим есть Таблица Студенты, Факультеты, Специальности. Нужно чтобы при...

Подзапросы, скалярные выражения
Доброго времени суток всем! Вот написал процедуру на sql и он мне выдал ошибку: Subqueries are not allowed in this context. Only scalar...

Порядок разработки сложных запросов включающих вложенные подзапросы
Раскрыть порядок разработки сложных запросов включающих вложенные подзапросы

Нужно сделать подзапросы в одной таблице. Как сделать быстрее?
Решил упорядочить статистику 'посетителей'. Вроде бы все просто собираю в таблице атакующий IP - IP_атак атакованный хост - IP_хост ...

вложенные подзапросы
Здравствуйте.Объяснити немножко приоритеты выполнения подзапросов в sql запросах Например у меня есть запрос:нахожу суммарную зарплату по...


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

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

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru