2014-06-23 2 views
0

У меня проблема с выражением типа SQL У меня больше столбцов, строк и мне нужно использовать где и счет, я бы получил результат, как это, но я не знаю, как можно написать инструкцию SQL.SQL MS count больше, чем columes с тремя, где

name|total| ER | OPD | IPD 
WBC | 5 | 2 | 3 | 0 
PLT | 3 | 1 | 0 | 2 
MCV | 7 | 4 | 2 | 1 



    SELECT count(WBC) as total, 
    (select COUNT(WBC) FROM Table2 WHERE Section='ER') as ER, 
    (SELECT COUNT(WBC) FROM Table2 WHERE Section='OPD') as OPD, 
    (SELECT COUNT(WBC) FROM Table2 WHERE Section = 'IPD') as IPD 
    FROM Table2 ; 

второй ряд

SELECT count(PLT) as total, 
    (select COUNT(PLT) FROM Table2 WHERE Section='ER') as ER, 
    (SELECT COUNT(PLT) FROM Table2 WHERE Section='OPD') as OPD, 
    (SELECT COUNT(PLT) FROM Table2 WHERE Section = 'IPD') as IPD 
    FROM Table2 ; 

и третий ряд

SELECT count(MCV) as total, 
    (select COUNT(MCV) FROM Table2 WHERE Section='ER') as ER, 
    (SELECT COUNT(MCV) FROM Table2 WHERE Section='OPD') as OPD, 
    (SELECT COUNT(MCV) FROM Table2 WHERE Section = 'IPD') as IPD 
    FROM Table2 ; 
+0

Здравствуйте. Вы используете команду «UNION ALL». Нужна помощь с этим? – Horaciux

+0

Я не видел тег ms-access во время ответа. –

+0

UNION ВСЕ благодарю вас за свою работу, но без колонки имен. – Masha2008

ответ

0

Попробуйте это:

SELECT name, total, ER, OPD, IPD 
FROM(
    SELECT 1 as order, 'WBC' as name, count(WBC) as total, 
    (select COUNT(WBC) FROM Table2 WHERE Section='ER') as ER, 
    (SELECT COUNT(WBC) FROM Table2 WHERE Section='OPD') as OPD, 
    (SELECT COUNT(WBC) FROM Table2 WHERE Section = 'IPD') as IPD 
    FROM Table2 

    UNION ALL 

    SELECT 2, 'PLT', count(PLT) as total, 
    (select COUNT(PLT) FROM Table2 WHERE Section='ER') as ER, 
    (SELECT COUNT(PLT) FROM Table2 WHERE Section='OPD') as OPD, 
    (SELECT COUNT(PLT) FROM Table2 WHERE Section = 'IPD') as IPD 
    FROM Table2 

    UNION ALL 

    SELECT 3, 'MCV', count(MCV) as total, 
    (select COUNT(MCV) FROM Table2 WHERE Section='ER') as ER, 
    (SELECT COUNT(MCV) FROM Table2 WHERE Section='OPD') as OPD, 
    (SELECT COUNT(MCV) FROM Table2 WHERE Section = 'IPD') as IPD 
    FROM Table2 
) u 
ORDER BY u.order 
+0

@ Masha2008 попробуйте это. Если это сработает для вас, вы можете формально принять его, посмотреть, как: http://stackoverflow.com/tour – Horaciux

+0

есть только один столбец MCV, и я пытаюсь добавить HGB таким же образом, но это еще две строки. – Masha2008

+0

ORDER BY u.order этот код не работает на ms-access – Masha2008

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