СЧЕТ С 2 УСЛОВИЯМИ В ОРАКУЛЕ - PullRequest
1 голос
/ 18 июня 2019

Я так старался сделать запрос из 1 таблицы с 2 условиями.И каждое условие должно быть в состоянии сосчитать строку на основе даты транзакции.

QUERY 1:

SELECT 
  INST_NO,
  TRUNC(INS_TS)INS_TS,
  COUNT(*) TOTAL_INSPECTION
FROM TMCI_QC_LINE2
WHERE INST_NO='M190200772'
GROUP BY 
    INST_NO, 
    TRUNC(INS_TS)

РЕЗУЛЬТАТ QUERY 1:

INST_NO      INS_TS      TOTAL_INSPECTION
M190200772   18-FEB-19         8 
M190200772   19-FEB-19         3

QUERY 2:

SELECT 
  INST_NO,
  TRUNC(INS_TS)INS_TS,
  COUNT(*) CASE_INSPECTION
FROM TMCI_QC_LINE2 
WHERE INST_NO='M190200772' AND QTY_OK IN (0)
GROUP BY
    INST_NO,
    TRUNC(INS_TS)

РЕЗУЛЬТАТ QUERY 2: Таблица2:

INST_NO      INS_TS      CASE_INSPECTION
M190200772   18-FEB-19          4 
M190200772   19-FEB-19          2

Теперь я хотел бы, чтобы результаты выглядели так:

INST_NO      INS_TS      INSPECTION    CASE
M190200772   18-FEB-19       8           4
M190200772   19-FEB-19       3           2

1 Ответ

2 голосов
/ 18 июня 2019

Вам необходим 1-й запрос и условное агрегирование для нового столбца:

SELECT 
  INST_NO,
  TRUNC(INS_TS) INS_TS, 
  COUNT(*) INSPECTION,
  SUM(CASE WHEN QTY_OK = 0 THEN 1 ELSE 0 END) CASE
FROM TMCI_QC_LINE2
WHERE INST_NO='M190200772'
GROUP BY INST_NO, TRUNC(INS_TS)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...