2016-10-07 2 views
1

Я работаю с SQL 2008 базы данных Im работая на докладе я хочу, чтобы отобразить на графике для меня, чтобы сделать это, мне нужно, чтобы преобразовать мои результаты из столбцов в строки Вот мой запросСтолбцы в строках

SELECT 
COUNT(CASE WHEN (pm.mortgagestatus) = 10 then 1 end) AS Received, 
SUM(case WHEN (pm.mortgagestatus) = 10 then pm.AmountRequested Else 0 END) AS [Received Amount], 
COUNT(CASE WHEN (pm.mortgagestatus) = 4 then 1 end) AS Passed, 
SUM(case WHEN (pm.mortgagestatus) = 4 then pm.AmountRequested Else 0 END) AS [Passed Amount], 
COUNT(CASE WHEN (pm.mortgagestatus) = 5 then 1 end) AS packaged, 
SUM(case WHEN (pm.mortgagestatus) = 5 then pm.AmountRequested Else 0 END) AS [Packaged Amount], 
COUNT(CASE WHEN (pm.mortgagestatus) = 6 then 1 end) AS Offered, 
SUM(case WHEN (pm.mortgagestatus) = 6 then pm.AmountRequested Else 0 END) AS [Offered Amount] 
FROM tbl_Profile AS p 
INNER JOIN tbl_Profile_Mortgage AS pm 
ON p.id = pm.fk_ProfileID 

Этот запрос возвращает enter image description here

Я хотел бы запрос, чтобы вернуться, как это.

enter image description here

Это позволит мне поместить данные в диаграмму. Любая помощь с этим наиболее ценится. Приветствия

ответ

3

Использование агрегации с case:

SELECT (CASE WHEN pm.mortgagestatus = 10 then 'Received' 
      WHEN pm.mortgagestatus = 4 then 'Passed' 
      WHEN pm.mortgagestatu) = 5 then 'packaged' 
      WHEN pm.mortgagestatus = 6 then 'Offered' 
     END) as Mortgage_Status, 
     COUNT(*) as Total, 
     SUM(pm.AmountRequested) as LoanAmount 
FROM tbl_Profile p INNER JOIN 
    tbl_Profile_Mortgage pm 
    ON p.id = pm.fk_ProfileID 
WHERE pm.mortgagestatus IN (4, 5, 6, 10) 
GROUP BY (CASE WHEN pm.mortgagestatus = 10 then 'Received' 
       WHEN pm.mortgagestatus = 4 then 'Passed' 
       WHEN pm.mortgagestatu) = 5 then 'packaged' 
       WHEN pm.mortgagestatus = 6 then 'Offered' 
      END); 
+0

Привет Гордон Спасибо за взгляд на это, когда я использовать ваш метод им получить следующее сообщение об ошибке. «Ошибка арифметического переполнения, преобразующая выражение в тип данных int. Предупреждение: значение Null исключается агрегатной или другой операцией SET». – RustyHamster

+0

Я думаю, что причина этого в том, что она пытается вернуть значение NULL при Mortgage_Status – RustyHamster

+0

, чтобы исправить это, я добавил там, где предложение, похожее на pm.MortgageStatus IN (10,4,5,6), теперь это отлично работает. Спасибо за вашу помощь. – RustyHamster

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