Переменная Month mmm и Append to static text Поле в SQL select Reporting design Studio 2005

У меня есть таблица бюджета с именами полей «SSBJAN», «SSBFEB», «SSMAR» и т. д. за год.

Мой запрос выбора, который работает нормально ниже, в настоящее время я вручную меняю «SSBMAY» каждый месяц:

SELECT  SADIVO AS Division, SAWHSL AS Location, SSBMAY as BudgetSales, 
FROM BBSCDTA.SA04WH

Я хочу, чтобы это получалось из Month(Today()) с текущим месяцем «ммм», чтобы я мог добавить его к SSB, чтобы он автоматически выбирал текущий месяц из таблицы.

Ниже я создал это в кодировании QlikView, но не могу заставить это работать в конструкторе отчетов SQL.

Мой код для Qlikview

Let Today='03/05/2012';
  let CalBud1=Upper(Month(Today()));
    let SSB=Upper('SSB');
let vCalBud=SSB&CalBud1;

Это возвращает «SSBMAY», а в следующем месяце возвращает «SSBJUN».


person Peter B    schedule 03.05.2012    source источник
comment
Какую систему баз данных вы используете? Майкрософт SQL? (Похоже, ваш первый запрос был отредактирован. Опубликованный вами синтаксис кажется неверным, особенно с дополнительной запятой после BudgetSales.)   -  person Jamie F    schedule 03.05.2012


Ответы (1)


Предполагая, что вам нужен запрос для T-SQL (диалект Microsoft SQL)

SELECT
  SADIVO AS Division,
  SAWHSL AS Location,
  CASE MONTH(GETDATE())
   WHEN 1 THEN SSBJAN
   WHEN 2 THEN SSBFEB
   WHEN 3 THEN SSBMAR
   WHEN 4 THEN SSBAPR
   WHEN 5 THEN SSBMAY
   WHEN 6 THEN SSBJUN
   WHEN 7 THEN SSBJUL
   WHEN 8 THEN SSBAUG
   WHEN 9 THEN SSBSEP
   WHEN 10 THEN SSBOCT
   WHEN 11 THEN SSBNOV
   WHEN 12 THEN SSBDEC
   END as BudgetSales 
FROM BBSCDTA.SA04WH
person Jamie F    schedule 03.05.2012
comment
Вы также можете использовать подстроку. Запрос будет выглядеть следующим образом. Выберите SADIVO AS Division, SAWHSL AS Location, 'SSB'+UPPER(SUBSTRING(DateName(Month,GetDate()),1,3)) AS BudgetSales FROM BBSCDTA.SA04WH Я не уверен в его базе данных вот почему я публикую это здесь как предложение. - person M.C.Rohith; 04.05.2012
comment
Привет, ребята, извините за задержку. Я был в отключке. Джейми, спасибо за ваш пример, он работал в SSRS 2005. Я попробовал код MCRohiths, но он возвращает SSBMAY в качестве данных, а не фактическую сумму в долларах поля таблицы. - person Peter B; 09.05.2012
comment
Это моя вина, что я не объяснил, что я извлекаю данные прямо из таблицы AS400 через соединение DB2, спасибо, ребята. С уважением, Питер. - person Peter B; 09.05.2012