Указание даты вступления в силу, когда дата охватывает несколько столбцов - PullRequest
0 голосов
/ 04 февраля 2010

Я работаю над базой данных DB2 и пытаюсь получить записи по дате вступления в силу. Единственный улов заключается в том, что поля даты вступления в силу охватывают 4 столбца (месяц, день, век, год). Я думаю, что у меня есть часть даты, выбранная в select, но когда я добавляю предложение where, у меня возникают проблемы. (обратите внимание, что я использую команду digits для заполнения, потому что 2005 год дает только 5 в поле года)

select date(concat(digits(vsmo),concat('/',concat(digits(vsdy),      
concat('/',concat(digits(vsct),digits(vsyr)))))))  from 
ddpincgr d
where (SELECT MAX(<NOT SURE WHAT TO PUT IN HERE>) FROM ddpincgr a WHERE a.vgrno = d.vgrno) <= date('1/1/2000')

Идеи? * * 1004

Ответы [ 2 ]

1 голос
/ 04 февраля 2010

Превратить его в подзапрос

select  *
from (select date(concat(digits(vsmo),concat('/',concat(digits(vsdy),      
concat('/',concat(digits(vsct),digits(vsyr))))))) as myDate  from 
ddpincgr d) as myTable
where max(myTable.myDate) <= date('1/1/2000')
0 голосов
/ 04 февраля 2010

Разве вы не можете просто поместить всю конкатенацию в select?

select  date(concat(digits(vsmo),concat('/',concat(digits(vsdy), concat('/',concat(digits(vsct),digits(vsyr)))))))  
from    ddpincgr d
where   ( SELECT MAX(date(concat(digits(vsmo),concat('/',concat(digits(vsdy), concat('/',concat(digits(vsct),digits(vsyr)))))))) 
          FROM ddpincgr a 
          WHERE a.vgrno = d.vgrno) <= date('1/1/2000')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...