Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Помогите разобраться с запросом  [new]
***Михаил***
Guest
Всем привет!
Есть запрос основанный на трех таблицах связанных меж собой, одна из этих трех таблиц содержит код, всякую инфу и три колонки с датами, эта таблица содержащая даты постоянно меняется на аналогичную таблицу, те если сегодня в последне колонке стоит 02.06.2008, в средней 30.05.2008, в первой 29.05.2008 то завтра будет стоять следующие число месяца но уже в первой колонке, потом изменения будут внесены в среднюю и последнюю колонку.
Эти три колонки в запросе ([]&" "&[]) мне нужно чтоб отброжалось только последнее число месяца.
Подскажите пожалуйста че делать.
СПАСИБО!!!!!
2 июн 08, 09:58    [5745200]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
Это значит от первого дня следующего месяца отнять 1 день. Так что-ли?
2 июн 08, 10:06    [5745219]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
***Михаил***
Guest
это значит что данные в таблице постоянно меняются, а эти числа произвольно попадают либо в первую либо во вторуб либо в третюю колонку. те. текущее число может оказаться где угодно из трех колонок. Это текущее число будет > всех остальных по дате. Надо чтоб в запросе оно отоброжалось отсеевая все числа которые меньше.
ТЕ чтоб постоянно не менять запрос мне надо чтоб сегоднешнее число отброжалось а числа 30 и 29 отсеевались в запросе, завтра мне надо будет чтоб отброжалось 3 а 30 и 29 отсеевались. Можно ли это сделать не меняя постоянно значений в запросе
2 июн 08, 10:12    [5745244]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
***Михаил***
Guest
***Михаил***
числа 30 и 29 отсеевались в запросе, завтра мне надо будет чтоб отброжалось 3 а 30 и 2 отсеевались. Можно ли это сделать не меняя постоянно значений в запросе
2 июн 08, 10:22    [5745327]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
Я вообще то мало что понял, и вникать лень...

Хотя обычно, чтобы получить последний день месяца надо взять первое число следующего месяца и отнять один день.
На DB2 это примерно так:





connect to test

   Database Connection Information

 Database server        = DB2/NT 9.5.0
 SQL authorization ID   = DB2ADMIN
 Local database alias   = TEST


values date( rtrim(char(year(current date)))||'-'|| rtrim(case when month(curren
t date) <= 9 then '0'|| char(month(current date)+1) when month(current date) <=
11 then char(month(current date)+1) else '01' end) ||'-01') -1 day

1
----------
30.06.2008

  1 record(s) selected.


values 
    date(
        rtrim(char(year(current date)))||'-'||
        rtrim(case 
                  when month(current date) <= 9 then '0'|| char(month(current date)+1)
                  when month(current date) <= 11 then char(month(current date)+1)
                  else '01'
               end)
        ||'-01'
    ) - 1 day
3 июн 08, 23:05    [5755661]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
golsa
Member

Откуда: Красноярск
Сообщений: 789
select 
  ...,
  case 
    when Date1 = @Date then <значения для колонки 1>
    when Date2 = @Date then <значения для колонки 2>
    when Date3 = @Date then <значения для колонки 3>
  end,
  ...,
from MyTable
where Date1 = @Date or Date2 = @Date or Date3 = @Date

где @Date = '20080603'  -- 3 июня 2008, на пример
10 июн 08, 15:37    [5788237]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Помогите разобраться с запросом  [new]
Shahlo
Member

Откуда:
Сообщений: 2
У меня типа такая же ситуация при работе на DB2, с таблицей test возникла необходимость получения результата. Далее стоит вопрос, как определить текущую дату на прошедший год, чтобы производилось суммирование с начала года прошлого года до текущей даты прошлого года, чтобы можно было производить операции сравнения с текущим годом и текущей датой. Например: текущая дата 07.02.2012, необходимо сравнить результаты с начала года с 01.01.2012 до 07.02.2012, с результатами прошлого года с 01.01.2011 до 07.02.2011.
у меня там месяцы как char(2)'02', а год как char(4)'2012', а даты как date '07.02.2012'
это у меня не работает:
data=current date - 1 year
он не плюсует, то что прошло до этого числа прошлого года
7 фев 12, 14:43    [12047264]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить