Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MS SQL Server > Выборка одной даты из двух столбцов |
Автор: ohota5476 12.6.2017, 08:49 | ||
Имеется таблица dbo.Abonent, в ней столбец DogovorEndPeriod - дата планируемого окончания договора, столбец DogovorDateCancel - дата досрочного расторжения договора, если таковая имеется (в противном случае значение null). Необходимо получить столбец с датой реального окончания договора. Т.е. если в DogovorDateCancel значение не null, то берем дату из него, в противном случае - из DogovorEndPeriod. Испробовал множество вариантов, решить задачу не получается. Один из последних приведен ниже:
Выдает ошибку "Не удалось привязать составной идентификатор dbo.Abonent.DogovorDateCancel". Предполагаю, что сам подход изначально не правильный. Буду благодарен за помощь. |
Автор: Akina 12.6.2017, 10:38 | ||
|
Автор: ohota5476 12.6.2017, 14:41 | ||
Спасибо, работает. Также нашел еще один вариант решения данной задачи.
|
Автор: ohota5476 12.6.2017, 20:13 | ||||
Data является реальной датой расторжения договора. Ее необходимо сравнить с датой оплаты PayData. Если дата оплаты меньше даты расторжения договора, то вывести в Dolg значение поля SumDT (выставленный счет), иначе вывести в Dolg это DocKT.SumDT-DocKT.SumKT (выставленный-оплаченный). Пытался набросать типа
Не позволяет сравнить dbo.DocKT.PayDate<Data. К тому же, не знаю, как это лучше к первому запросу прикрутить. Понимаю, что надо много еще чего изучить, но сейчас стоит данная задача, которую необходимо решить. Буду благодарен за помощь. |
Автор: Akina 13.6.2017, 09:14 | ||
IF - это ветвление выполнения в процедуре. В рамках одного запроса для альтернативной выборки в зависимости от условия следует использовать CASE:
ISNULL - это та же COALESCE, но со строго 2 параметрами. |