2017-01-15 5 views
-2
SELECT M.AcType, 
     A.AcTypeDesc, 
     M.IntCrRate, 
     Datediff(day, C.Today, D.MaturityDate) AS DurationDay, 
     Datediff(month, C.Today, D.MaturityDate) AS DurationMonth, 
     Datediff(year, C.Today, D.MaturityDate) AS DurationYear, 
     'Total Deposit'=Sum(M.Balance) 
FROM Master M(nolock), 
     AcTypeTable A(nolock), 
     DealTable D(nolock), 
     ControlTable C(nolock) 
WHERE M.AcType = A.AcType 
     AND M.MainCode = D.MainCode 
     AND M.AcOpenDate = D.DealOpenDate 
     AND M.Balance > 0 
     AND M.CyCode = '01' 
GROUP BY M.AcType, 
      M.IntCrRate, 
      A.AcTypeDesc, 
      D.MaturityDate, 
      C.Today 
UNION ALL 
SELECT Count(M.AcType), 
     'Total', 
     NULL, 
     NULL, 
     NULL, 
     NULL, 
     Sum(M.Balance) 
FROM Master M(nolock), 
     AcTypeTable A(nolock), 
     DealTable D(nolock) 
WHERE M.AcType = A.AcType 
     AND M.MainCode = D.MainCode 
     AND M.AcOpenDate = D.DealOpenDate 
     AND M.Balance > 0 
     AND M.CyCode = '01' 

ошибки Сообщ: Msg 245, уровень 16, состояние 1, строка 1 Конверсия сбой при преобразовании значения VARCHAR «2A» для типа данных внутр. как запросы запуска при запуске индивидуально, но при запуске вместе оно неКонверсия удалось при преобразовании значения VARCHAR «2A» к типу данных междунар

+0

Что такое тип данных первых двух колонок '' M.AcType1' и A.AcTypeDesc' в первом запросе –

+0

да becuase на одном вы используют функцию count, а на других - не так, чтобы один обратный интервал –

+0

Пожалуйста, проверьте мой ответ, если это поможет. Если у вас есть вопрос, дайте мне знать, я с удовольствием помогу –

ответ

0
   -- actype you are not using count but after union all u r using count that y you have error both table should have same columns and types 
       SELECT M.AcType, 
       A.AcTypeDesc, 
       M.IntCrRate, 
       Datediff(day, C.Today, D.MaturityDate) AS DurationDay, 
       Datediff(month, C.Today, D.MaturityDate) AS DurationMonth, 
       Datediff(year, C.Today, D.MaturityDate) AS DurationYear, 
       'Total Deposit'=Sum(M.Balance) 
     FROM Master M(nolock), 
       AcTypeTable A(nolock), 
       DealTable D(nolock), 
       ControlTable C(nolock) 
     WHERE M.AcType = A.AcType 
       AND M.MainCode = D.MainCode 
       AND M.AcOpenDate = D.DealOpenDate 
       AND M.Balance > 0 
       AND M.CyCode = '01' 
     GROUP BY M.AcType, 
        M.IntCrRate, 
        A.AcTypeDesc, 
        D.MaturityDate, 
        C.Today 
     UNION ALL 
     -- here count -- if its varchar then it will retun error 
     SELECT Count(M.AcType), 
       'Total', 
       NULL, 
       NULL, 
       NULL, 
       NULL, 
       Sum(M.Balance) 
     FROM Master M(nolock), 
       AcTypeTable A(nolock), 
       DealTable D(nolock) 
     WHERE M.AcType = A.AcType 
       AND M.MainCode = D.MainCode 
       AND M.AcOpenDate = D.DealOpenDate 
       AND M.Balance > 0 
       AND M.CyCode = '01' 

So to fix it please remove count or add count(Actype on the top of query). if this type is varchar then you cannot use count 
+0

Так что либо используйте счет на обоих, либо удалите. Пожалуйста, попробуйте, если мой ответ поможет. –

+0

спасибо yashveer singh его решил – balle

+0

вы можете принять и как мой ответ пожалуйста –

Смежные вопросы

 Смежные вопросы