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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2017, 12:01   #1
Sizova
Пользователь
 
Регистрация: 27.03.2015
Сообщений: 25
Сообщение Убрать повторяющиеся записи

есть такой код
Код:
select dateSum.nameOfIndicators, dateSum.outlayID, max(dateSum.date), ISNULL(estimate.sum,0)
from dateSum full outer join estimate on estimate.date=dateSum.date
and estimate.outlayID=dateSum.outlayID and dateSum.date<='20.02.2017'
where dateSum.nameOfIndicators is not null 
group by dateSum.nameOfIndicators, dateSum.outlayID, estimate.sum
order by dateSum.outlayID
в рузельтате выдается это
1.PNG
требуется получить это
2.PNG
Sizova вне форума Ответить с цитированием
Старый 24.04.2017, 12:15   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
full outer join
Это обязательно или от недопонимания?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.04.2017, 12:16   #3
Sizova
Пользователь
 
Регистрация: 27.03.2015
Сообщений: 25
По умолчанию

необязательно, главное, что бы в результате получилось так как надо
Sizova вне форума Ответить с цитированием
Старый 24.04.2017, 12:20   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Для того, что бы как надо желательно указать какая СУБД и словами расписать что есть и что требуется получить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.04.2017, 12:25   #5
Sizova
Пользователь
 
Регистрация: 27.03.2015
Сообщений: 25
По умолчанию

SQL Server
требуется оставлять записи максимально близкие к указанной дате, но по nameOfIndicators не должно быть повторяющихся записей (и суммировать их денежное значение не требуется)
Sizova вне форума Ответить с цитированием
Старый 24.04.2017, 12:48   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Мало чего понял из этого псевдо-ТЗ. Тогда какой вопрос, такой и ответ ))
Код:
SELECT dateSum.nameOfIndicators,dateSum.outlayID, dateSum.date, estimate.sum
  FROM dateSum,estimate,
    (SELECT outlayID,max(date) AS MaxDate FROM estimate WHERE date<='20.02.2017' GROUP BY outlayID) U
  WHERE dateSum.nameOfIndicators is not null AND
        dateSum.outlayID=U.outlayID AND
        dateSum.date=U.MaxDate AND
        estimate.outlayID=U.outlayID AND
        estimate.date=U.MaxDate
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.04.2017, 12:51   #7
Sizova
Пользователь
 
Регистрация: 27.03.2015
Сообщений: 25
По умолчанию

нет, к сожалению, это не то, такой вариант у меня уже получался
full outer join все таки обязательно, потому что мне требуется, чтобы все таки список всех nameOfIndicators выводлися, но они не повторялись
Sizova вне форума Ответить с цитированием
Старый 24.04.2017, 13:05   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А nameOfIndicators из какой записи dateSum должен браться, если нет подходящей записи в estimate?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.04.2017, 13:06   #9
Sizova
Пользователь
 
Регистрация: 27.03.2015
Сообщений: 25
По умолчанию

да, именно так
Sizova вне форума Ответить с цитированием
Старый 24.04.2017, 13:17   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
да, именно так
Что так? Не известно с какой?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Убрать из массива повторяющиеся элементы jirtreck Паскаль, Turbo Pascal, PascalABC.NET 7 13.03.2016 02:42
объясните как убрать в предложении из каждого слова все повторяющиеся буквы? st555 Общие вопросы C/C++ 0 29.12.2010 06:31
Убрать повторяющиеся слеши (//////) из url. Mod Rewrite TrydORgolik PHP 3 02.10.2010 21:57
повторяющиеся записи hinku БД в Delphi 3 18.08.2009 17:25
Повторяющиеся записи DBGrid Crookers БД в Delphi 2 21.05.2008 13:26