Задать вопрос
@bugagawenka

Реализовать на Mysql: Выбор по 2 периодам(предыдущий, текущий) одного контракта?

Доброго времени суток! Прошу вашей помощи со сложным для меня запросом в Mysql.
Необходимо заполнить таблицу разными данными за периоды.

Исходная таблица выглядит так:

id | nomer | sostoyanienadatu | summa | 
------------------------------------------
1  |номер 1| 2014-09-15       | 100   |
2  |номер 2| 2014-10-10       | 200   |
3  |номер 1| 2014-10-05       | 300   |
4  |номер 3| 2014-10-11       | 400   |
5  |номер 4| 2014-09-06       | 500   |


к примеру:
prmysyac - 2014-09
tekywiymesiac - 2014-10

Должно получиться вот так:

nomer   | prmysyac | tekywiymesiac |
------------------------------------
номер 1 | 100      | 300           |
номер 2 |          | 200           |
номер 3 |          | 400           |
номер 4 | 500      |               |


то, что освоил и может пригодиться(на мой взгляд):
данные про текущий и прошлый период в sql передаю из php переменными и заполняю так, что получается вот такой запрос:
SELECT `nomer`,`zakazchik`, FROM database.table WHERE sostoyanienadatu LIKE '2014-09%';


использую вот такой запрос для выявления последнего контракта:
SELECT * FROM database.table WHERE (nomer,sostoyanienadatu) IN (SELECT nomer, MAX(sostoyanienadatu) FROM database.table GROUP BY nomer);


Буду безмерно благодарен за помощь.
  • Вопрос задан
  • 2252 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@bugagawenka Автор вопроса
На одном добром форуме подсказали как всё сделать :)
Выложу и здесь результат, вдруг кому-то пригодится :)
select t.nomer, t1.`summa` prmysyac , t2.`summa` tekywiymesiac from database.table t left join
(select nomer, `summa` from database.table where month(sostoyanienadatu)=9 ) t1 using(nomer) left join
(select nomer, `summa` from database.table where month(sostoyanienadatu)=10 ) t2 using (nomer) GROUP BY nomer;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@whats
Если у нас на один номер в текущем месяце приходится более чем 1 запись, что мы должны внести в колонку ? А если в прошлом месяце у этой записи имеется больше чем 1 запись, тогда что ?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы