Добрый день.
Читал вот эту тему: 10187341 - не помогло, поэтому создаю новую тему.
Прикрепляю SQL файл где создается БД, таблица и вставляются данные.
Некоторые пояснения.
Имеем таблицу тарифов на жилищно-коммунальные услуги. Это фрагмент таблица. На самом деле полей и дат больше, но привожу только ключевые поля/даты.
Пояснения к таблице:
Мне нужно получить развернутую таблицу по горизонтали по полю DATA_TR.
Сначала все поля с датой 01/12/2016, потом 01/10/2015 и в завершение 01/09/2014.
Проблема заключается в том что может быть несколько строк с разными DATA_E и DATA_R.
для BD=2 вот такая картина:
Как видно для cod_rizn 1,4,5,7,8,9 есть 2 DATA_E и DATA_R: 21/10/2015, 05/11/2015 и 01/10/2015, 22/10/2015 соответственно.
Мне нужно выбрать последние (максимальные) значения.
Так же количество значений тоже может быть разное, например для той же BD=2 количество строк (если брать только нужные даты) для 01/12/2016 и 01/10/2015 - 10 строк, а для 01/09/2016 - 6 строк.
Пытался сделать так:
Но, скорее всего, из-за того что есть несколько строк на 1 значение cod_rizn - результат пустой.
Пробовал как в упомянутом сообщении применить LEFT JOIN - результат тот же, НИЧЕГО
Что я неправильно делаю и как правильно добавить условие по выбору максимальной даты (DATA_E и DATA_R) из нужной мне DATA_TR?
--------------------------
Firebird 3.0.1.32609;
IBExpert 2017.2.7.1;
Windows 10 32-bit;
4Gb RAM;
SSD 512Mb + HDD 1 Tb;
Настройки по умолчанию
Читал вот эту тему: 10187341 - не помогло, поэтому создаю новую тему.
Прикрепляю SQL файл где создается БД, таблица и вставляются данные.
Некоторые пояснения.
Имеем таблицу тарифов на жилищно-коммунальные услуги. Это фрагмент таблица. На самом деле полей и дат больше, но привожу только ключевые поля/даты.
Пояснения к таблице:
+ |
Мне нужно получить развернутую таблицу по горизонтали по полю DATA_TR.
Сначала все поля с датой 01/12/2016, потом 01/10/2015 и в завершение 01/09/2014.
Проблема заключается в том что может быть несколько строк с разными DATA_E и DATA_R.
для BD=2 вот такая картина:
+ |
Как видно для cod_rizn 1,4,5,7,8,9 есть 2 DATA_E и DATA_R: 21/10/2015, 05/11/2015 и 01/10/2015, 22/10/2015 соответственно.
Мне нужно выбрать последние (максимальные) значения.
Так же количество значений тоже может быть разное, например для той же BD=2 количество строк (если брать только нужные даты) для 01/12/2016 и 01/10/2015 - 10 строк, а для 01/09/2016 - 6 строк.
Пытался сделать так:
+ |
Но, скорее всего, из-за того что есть несколько строк на 1 значение cod_rizn - результат пустой.
Пробовал как в упомянутом сообщении применить LEFT JOIN - результат тот же, НИЧЕГО
Что я неправильно делаю и как правильно добавить условие по выбору максимальной даты (DATA_E и DATA_R) из нужной мне DATA_TR?
--------------------------
Firebird 3.0.1.32609;
IBExpert 2017.2.7.1;
Windows 10 32-bit;
4Gb RAM;
SSD 512Mb + HDD 1 Tb;
Настройки по умолчанию