Как взять разные счета из одной таблицы в MySQL - PullRequest
0 голосов
/ 07 марта 2012

У меня есть таблица с именем - studentId_t который имеет поля:

  • SrNo.
  • Classid
  • StudentId
  • StudentName
  • Состояние
  • Дата создания
  • Дата изменения

и еще одна таблица с именем studentE который имеет поля

  • SrNo.
  • Classid
  • studentId
  • studentAdd
  • Ид

- Я хочу проверить статус студента и у меня только E_id

Я пытался запрос, как ..

SELECT COUNT(1) AS ST FROM `StuInfo`.`studentId_t` S, `StuInfo`.`studentE` SE
    WHERE S.`status` = 'ST'
    AND SE.`studentId` = S.`studentId`
    AND SE.`EId` = 1

но здесь я хочу вычислить статус в (ST, BS, BH, GN), так как я могу рассчитать его в одном запросе из запроса выше Я могу рассчитать один статус, я хочу несколько статусов

1 Ответ

4 голосов
/ 07 марта 2012

ИСПОЛЬЗОВАНИЕ SUM() с if,else условиями, ориентированными на весь статус.

Попробуйте как ниже:

SELECT SUM(if(status='ST',1,0))  AS ST , SUM(if(status='BS',1,0))  AS   BS,
SUM(if(status='BH',1,0))  AS BH,SUM(if(status='GN',1,0))  AS GN
FROM StuInfo.studentId_t S, StuInfo.studentE SE
WHERE S.status IN ('ST', 'BH','BS','GN') AND SE.studentId = S.studentId AND SE.EId = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...