Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите чайнику / 8 сообщений из 8, страница 1 из 1
26.07.2013, 12:27:19
    #38344992
JsssK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите чайнику
Добый день!

Прошу помощи у опытных коллег.

Есть таблица `показатели` в MySQL с полями: филиал | показатель | год | значение

Пример содержания:
Московский филиал | Прибыль | 2012 | 5000
Московский филиал | Прибыль | 2011 | 1000
Московский филиал | Штатная численность | 2012 | 35
Самарский филиал | Директор | 2011 | Пупкин В.П.
Киевский филиал | Прибыль | 2012 | 3000
итд

Нужно получить выписку определенных расчетных значений по всем филиалам, вида:
1 | Московский филиал | 5.00
2 | Самарский филиал | 0.75
3 | Киевский филиал | 1.20

Где в последнем столбце расчетное значение, равное отношению прибыли за 2012 год к прибыли за 2011 год.

Задача решается в несколько запросов (псевдоязык):
1. SELECT DISTINCT `филиал` as fil FROM `показатели`
2. FOR EACH fil:
1) SELECT `значение` as profit2012 FROM `показатели` WHERE `показатель` = 'прибыль' AND `год` = '2012' AND `филиал` = fil
2) SELECT `значение` as profit2011 FROM `показатели` WHERE `показатель` = 'прибыль' AND `год` = '2011' AND `филиал` = fil
3. SELECT fil, (profit2012 / profit2011) as `value` ORDER BY fil

Как это сделать в один запрос?
...
Рейтинг: 0 / 0
26.07.2013, 14:07:42
    #38345226
deblogger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите чайнику
JsssK,

Как вы делите Пупкина ВП на директора чтобы узнать прибыльность филиала?
...
Рейтинг: 0 / 0
26.07.2013, 14:11:27
    #38345235
deblogger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите чайнику
Забыл добавить.Это в рубрику по Екзелю. В цитате не таблица и не из БД. Типичный екзельшит.
...
Рейтинг: 0 / 0
26.07.2013, 14:22:54
    #38345250
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите чайнику
JsssK,

Код: sql
1.
2.
3.
4.
5.
6.
SELECT  t1.`филиал`, t1.`значение`/t2.`значение` as `value` 
FROM  `показатели` t1,  `показатели` t2
WHERE t1.`филиал`=t2.`филиал`
  AND t1.`год`='2012' AND t2.`год`='2011'
  AND t1.`показатель` = 'прибыль' AND t2.`показатель` = 'прибыль'
ORDER BY t1.`филиал`


Но задача бредовая. Или учебная.
...
Рейтинг: 0 / 0
26.07.2013, 14:49:47
    #38345305
JsssK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите чайнику
debloggerJsssK,
Как вы делите Пупкина ВП на директора чтобы узнать прибыльность филиала?
Я не делю значение показателя на его название!
Просто в одной таблице много разных показателей. Нужно поделить одни на другие, у которых одно и то же значение в поле "филиал" и разное в поле "год". При этом выбирается срез по какому то одному показателю.

debloggerЗабыл добавить.Это в рубрику по Екзелю. В цитате не таблица и не из БД. Типичный екзельшит.
Вы похоже не врубились. Таблица именно из MySQL.


miksoft, спасибо!
я не догадался, что можно одну и ту же таблицу поименовать разными идентификаторами.
...
Рейтинг: 0 / 0
26.07.2013, 15:24:02
    #38345390
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите чайнику
JsssKdebloggerЗабыл добавить.Это в рубрику по Екзелю. В цитате не таблица и не из БД. Типичный екзельшит.
Вы похоже не врубились. Таблица именно из MySQL.Дело не в СУБД, дело в способе хранения данных. Тот, что используется в этой задаче (все данные вперемешку и без никакой нормализации), характерен для ведения самодельного учета в Excel-е и/или для некоего отчета, но не для исходных таблиц, хранящихся в БД.
...
Рейтинг: 0 / 0
27.07.2013, 18:47:08
    #38346420
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите чайнику
JsssK,

дык и никто не может догадаться про синтаксис языка - все читают из доков.:)
...
Рейтинг: 0 / 0
28.07.2013, 21:04:13
    #38346771
deblogger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите чайнику
[quot JsssK]debloggerВы похоже не врубились. Таблица именно из MySQL.


Видел я такие таблицы в майскуль, тут и врубаться некуда. Перенесли методы из екзеля в реляционную бд и думают будто у них теперь реляционная бд.

Еще можно приклеить шильдик Тойоты на Калину. И думать.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите чайнику / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]