Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2013, 09:51   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию Ошибка GROUP BY

есть запрос результат запроса необходимо выводить поквартально за последний год
Код:
SELECT sum(price),
       sum(price/(1+(rate/100))),
       sum(price*(1-1/(1+(rate/100)))) 
from Consignment_goods where id_consigment in
(SELECT id from Consignments WHERE id_seller in
(SELECT id FROM contragents Where full_name='MeeatKo' ));
пытался модифицировать вот так
Код:
SELECT sum(price),
       sum(price/(1+(rate/100))),
       sum(price*(1-1/(1+(rate/100)))) 
from Consignment_goods where id_consigment in
(SELECT id from Consignments GROUP BY date HAVING id_seller in
(SELECT id FROM contragents Where full_name='MeeatKo' ));
пишет ошибку что не может найти поле id_seller я так подозреваю что проблема не в правильном использовании GROUP BY. Каму не сложно подскажите и если есть возможность кинте ссылку на статью потому что одекватных статей я что то не нашел
Lokos вне форума Ответить с цитированием
Старый 05.04.2013, 09:57   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Код:
SELECT sum(price),
       sum(price/(1+(rate/100))),
       sum(price*(1-1/(1+(rate/100)))) 
from Consignment_goods cg
inner join contragents c on c.id=cg.id_seller 
Where с.full_name='MeeatKo'
GROUP BY cg.date
только не понятно как тут вы поквартально собираетесь делать?

Последний раз редактировалось eval; 05.04.2013 в 09:59.
eval вне форума Ответить с цитированием
Старый 05.04.2013, 10:44   #3
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

это уже был бы следующий вопрос. как я понимаю необходимо задать параметры группировки?
Lokos вне форума Ответить с цитированием
Старый 05.04.2013, 11:06   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
это уже был бы следующий вопрос
А на следующий вопрос не ответишь без указания СУБД
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.04.2013, 11:09   #5
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А на следующий вопрос не ответишь без указания СУБД
СУБД MSSQL

немного почитав узнал как сделать группировку по месяцам а вот как по кварталам что то не придумаю(
Код:
SELECT sum(price),
       sum(price/(1+(rate/100))),
       sum(price*(1-1/(1+(rate/100)))) 
from Consignment_goods cg
inner join contragents c on c.id=cg.id_seller 
Where с.full_name='MeeatKo'
GROUP BY mouns(cg.date)

Последний раз редактировалось Lokos; 05.04.2013 в 11:40.
Lokos вне форума Ответить с цитированием
Старый 05.04.2013, 11:41   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Примерно так
Код:
SELECT DATEPART(quarter,cg.date),sum(price),
       sum(price/(1+(rate/100))),
       sum(price*(1-1/(1+(rate/100)))) 
from Consignment_goods cg
inner join contragents c on c.id=cg.id_seller 
Where с.full_name='MeeatKo' AND YEAR(cg.date)=2012
GROUP BY DATEPART(quarter,cg.date)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.04.2013, 12:41   #7
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

как возможно поменять статическое число 2012 на текущий год-1
что то в таком духе?
Код:
year(now)-1
Lokos вне форума Ответить с цитированием
Старый 05.04.2013, 12:48   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Вы в справку собираетесь смотреть или будете продолжать по форумам побираться?
eval вне форума Ответить с цитированием
Старый 05.04.2013, 12:49   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Текущий год в дельфи - YearOf(Date)
Текущий год в TSQL - YEAR(GETDATE())
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.04.2013, 12:57   #10
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Текущий год в дельфи - YearOf(Date)
Текущий год в TSQL - YEAR(GETDATE())
Спс за Delphi знаю )
На данный момент интересует только TSQL
Если нужен предыдущий то просто отнимаем единицу или нужно идит на ухищрения?
Если не сложно посоветуй литературу, слил пару книг очень много лишнего типо установки SQL и так далее интересует функции и синтаксис, а то сижу вычитываю по строчке со статей. Спс за ответы
Lokos вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
group by ts-alan C# (си шарп) 2 21.03.2013 21:22
Ошибка при выполнении запроса(SUM() и GROUP by) к таблице excel. kaval88 Microsoft Office Excel 4 20.02.2011 15:31
Group by and Having Progsenya SQL, базы данных 1 19.02.2011 19:18
GROUP BY Syltan SQL, базы данных 1 03.11.2009 13:39
Group в Excel Ora Общие вопросы Delphi 0 21.04.2009 11:04