Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > группировка значений


Автор: diez 28.1.2012, 13:29
Здравствуйте!

Есть такая таблица в Access:

filial     metrik     value
----------------------------
centr    remont       200
centr    perevod     1020
centr    remont       570
centr    remont       210
centr    perevod     750
vostok  remont      110
vostok  remont      300
vostok  remont      220
vostok  perevod    540
vostok  perevod    230

Нужно получить запросом такую табличку:
filial    perevod    remont
------------------------------
centr    1770    980
vostok    770            630
total    2540    1610

Заранее спасибо за помощь!

Автор: Zloxa 28.1.2012, 15:17
Код

select filial
  ,sum(iif(metrik='perevod',value,0)) perevod
  ,sum(iif(metrik='remont',value,0)) remont
from [такая таблица в Access]
group by filial

Автор: diez 28.1.2012, 16:01
Спасибо за помощь, но возникает ошибка.

Автор: Zloxa 28.1.2012, 17:07
diez, ну так разберитесь с синтаксисом и расскажите где у меня ошибка. Буду рад заслушать.

Автор: Akina 28.1.2012, 21:40
diez, воспользуйтесь мастером построения перекрёстного запроса.
Но предварительно прочтите http://ln.com.ua/~openxs/articles/smart-questions-ru.html. 

Автор: Данкинг 28.1.2012, 22:08
Zloxa, AS куда дел? smile 

Автор: Zloxa 28.1.2012, 22:29
Цитата(Данкинг @  28.1.2012,  22:08 Найти цитируемый пост)
Zloxa, AS куда дел?

Я его никогда не пишу. Он мня раздражает  smile

Добавлено через 30 секунд
акцессу он действительно критически важен, или ты просто предполагаешь?

Автор: Данкинг 28.1.2012, 22:53
Цитата(Zloxa @  28.1.2012,  23:29 Найти цитируемый пост)
акцессу он действительно критически важен, или ты просто предполагаешь? 

Я впервые узнаю, что он, оказывается, может не использоваться. Это в Оракле, что ли? Ведь в FB и FoxPro тоже без него никуда. А в Акцессе я проверил перед тем, как писать - без него не работает.

Автор: Zloxa 28.1.2012, 23:04
Цитата(Данкинг @  28.1.2012,  22:53 Найти цитируемый пост)
Это в Оракле, что ли?

для MS, PG, помому тоже AS может быть опущен. В MySQL тоже не припомню, чтобы на опущенный AS кто-то жаловался.

А раздражает меня в AS то, что оракл допускает испльзование AS для алиасинга столбцов и запрещает его использовать для алиасинга таблиц и подзапросов. Я на этом, когда переполз на оракл, шибко спотыкался, потому и приучил себя не использовать его нигде ))


Цитата(Данкинг @  28.1.2012,  22:53 Найти цитируемый пост)
в Акцессе я проверил перед тем, как писать - без него не работает. 

спасибо, буду знать.(постараюсь не забыть  smile )

Автор: Данкинг 28.1.2012, 23:07
Гы. Я тоже буду знать, что не во всех СУБД он обязателен. smile 

Автор: FINANSIST 30.1.2012, 07:45
Цитата(Данкинг @  28.1.2012,  22:53 Найти цитируемый пост)
А в Акцессе я проверил перед тем, как писать - без него не работает

Енто с какойж такой пьяной радости Акс вдруг к "AS"  стал привередлив?
Код

select @1.id
from
(select id  from MSysAccessObjects) @1
inner join
(select id  from MSysAccessObjects) @2
on @[email protected]
where @2.id >= some
(select id  from MSysAccessObjects) 
with owneraccess option


Автор: Akina 30.1.2012, 08:20
Цитата(FINANSIST @  30.1.2012,  08:45 Найти цитируемый пост)
Енто с какойж такой пьяной радости Акс вдруг к "AS"  стал привередлив?

Для псевдонимов полей использование AS - обязательно. Описано в документации.
Для псевдонимов таблиц и подзапросов использование AS необязательно, явно в документации не описано.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)