LebneizTech Ответов: 2

Как отобразить данные списка в табличной форме


Dear Sir,
 I am using simple query it result in a grid view.
But I require in Tabular Form ....
      Date from 01/08/2019 to 31/08/2019
Department                      Female Male 
ANESTHESIOLGIST & INVESTIGATION 15      10
GYNAECOLOGY                     1         

Please give me solution.


Что я уже пробовал:

I am using ASP .Net and MS SQL.
Result from a query is: 
select Adm_date,Department_Name,P_Gender, count(*) as Num from Vw_IPDPatDetails where DischageStatus='Y' and (E_date between '8/1/2019' and '8/31/2019') group by Adm_date,P_Gender,Department_Name
Date  Department                      Sex Count
01/08/2019 ANESTHESIOLGIST & INVESTIGATION Female 3
01/08/2019 ANESTHESIOLGIST & INVESTIGATION Male 5
02/08/2019 ANESTHESIOLGIST & INVESTIGATION Female 7
02/08/2019 GYNAECOLOGY                     Female 1
02/08/2019 ANESTHESIOLGIST & INVESTIGATION Male 5 
120 line ...

2 Ответов

Рейтинг:
16

Maciej Los

Все, что вам нужно сделать, это Стержень[^] данные.

Это должно сделать трюк:

SELECT Department, [Male], [Female]
FROM (
    SELECT Department_Name As Department, P_Gender
    FROM Vw_IPDPatDetails
    WHERE DischageStatus='Y' AND (E_date between '8/1/2019' AND '8/31/2019')
) AS DT
PIVOT(COUNT(Department) FOR P_Gender IN ([Male], [Female])) AS PT


LebneizTech

Сэр, это ошибка:
Msg 325, Уровень 15, Состояние 1, Строка 7
Неправильный синтаксис рядом с "PIVOT". Возможно, Вам потребуется установить уровень совместимости текущей базы данных на более высокое значение, чтобы включить эту функцию. См. справку для хранимой процедуры sp_dbcmptlevel.

Maciej Los

Чтобы устранить проблему с "уровнем совместимости", проверьте это: sql server - почему UNPIVOT работает на уровне совместимости 80 DB? - администраторы баз данных Stack Exchange[^]

LebneizTech

Теперь ошибка показывает:
Msg 207, Уровень 16, Состояние 1, Строка 1
Департамент недопустимое имя столбца''.

Maciej Los

Пожалуйста, измените его на [отдел] и дайте мне знать.

LebneizTech

Я переоделся, но не работал, сэр.

Maciej Los

Итак, проверьте имя/псевдоним столбца. Обратите внимание, что у меня нет доступа к вашим данным и я не могу читать прямо с вашего экрана. Оператор pivot является правильным.

LebneizTech

Это работает сэр,
ВЫБИРАТЬ *
FROM (SELECT Department_Name as Department, P_Gender,count(*) as CC
Из Vw_IPDPatDetails
Где DischageStatus='Y' и (E_date между '8/1/2019' и '8/31/2019') group by Department_Name,P_Gender) as DT
PIVOT(SUM(CC)
Для P_Gender IN ([Male],[Female])) Как PVTTable

Maciej Los

Отлично!
Я горжусь тобой.
Ваше здоровье!
Мацей