SQL запрос с функциями - PullRequest
       11

SQL запрос с функциями

0 голосов
/ 06 января 2010
SELECT
         SLTR_COMP_CODE,
         sltr_ldgr_code,
         sltr_slmast_acno Acno,
         SUBSTRING(sltr_slmast_acno, 1, 1) category,
         ISNULL(SUM(CONVERT(FLOAT, sltr_tran_amt - ISNULL(sltr_matched_amt, 0))), 0) Net_Bal,
         SUM(CONVERT(FLOAT, CASE DBO.glas_agewise_analysis(CONVERT(DATETIME, '2009-04-04', 103) - FLOOR(sltr_pstng_datetime)) 
            WHEN 1 THEN (sltr_tran_amt - ISNULL(sltr_matched_amt, 0)) 
            ELSE 0 
        END)) thirty_days,
         SUM(CONVERT(FLOAT, CASE DBO.glas_agewise_analysis(CONVERT(DATETIME, '2009-04-04', 103) - FLOOR(sltr_pstng_datetime)) 
            WHEN 2 THEN (sltr_tran_amt - ISNULL(sltr_matched_amt, 0)) 
            ELSE 0 
        END)) sixty,
         SUM(CONVERT(FLOAT, CASE DBO.glas_agewise_analysis(CONVERT(DATETIME, '2009-04-04', 103) - FLOOR(sltr_pstng_datetime)) 
            WHEN 3 THEN (sltr_tran_amt - ISNULL(sltr_matched_amt, 0)) 
            ELSE 0 
        END)) ninty,
         SUM(CONVERT(FLOAT, CASE DBO.glas_agewise_analysis(CONVERT(DATETIME, '2009-04-04', 103) - FLOOR(sltr_pstng_datetime)) 
            WHEN 4 THEN (sltr_tran_amt - ISNULL(sltr_matched_amt, 0)) 
            ELSE 0 
        END)) One_twenty,
         SUM(CONVERT(FLOAT, CASE DBO.glas_agewise_analysis(CONVERT(DATETIME, '2009-04-04', 103) - FLOOR(sltr_pstng_datetime)) 
            WHEN 5 THEN (sltr_tran_amt - ISNULL(sltr_matched_amt, 0)) 
            ELSE 0 
        END)) One_fifty
FROM  glas_sl_transactions 
WHERE    SLTR_COMP_CODE  = '1'
 AND    sltr_ldgr_code  = '01'
GROUP BY sltr_ldgr_code,
     sltr_slmast_acno,
      SLTR_COMP_CODE 

ошибка: Msg 260, уровень 16, состояние 3, строка 1 Запрещено неявное преобразование из типа данных datetime в тип данных float, таблица 'glas_sl_transactions', столбец 'SLTR_PSTNG_DATETIME' Используйте функцию CONVERT для выполнения этого запроса.

как мне выполнить этот запрос?

1 Ответ

2 голосов
/ 06 января 2010

Попробуйте заменить ваши выражения на:

CONVERT(float, CONVERT(datetime, '2009-04-04', 103))
    - FLOOR(CONVERT(float, sltr_pstng_datetime))

чтобы все ваши преобразования были явными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...