2016-07-22 2 views
0

мне нужна помощь с запросом SQL, где мне нужноSQL переменной запроса в объединение + COUNT()

SELECT MachineID from TABLE1 

, а затем

Count(Passfail) from TABLE2 WHERE MachineID= *MACHINEID 

from the SELECT заявление ранее в одной таблице

+0

Можете ли вы показать нам упрощенную таблицу структура, данные выборки и ожидаемый результат? – artm

+0

Ваш вопрос не имеет смысла. Если во втором запросе вы уже знаете идентификатор машины, тогда зачем нужен первый запрос? –

+0

TABLE1 имеет machineID и MachineName ТАБЛИЦА 2 Passfail и machineID , что мне нужно, как выход будет MachineID 1 PassFail 10 я прошу прощения за horrilbe объяснение, как им полный новичок на этом – Xion

ответ

0

Ты почти написал это прямо здесь. Вы должны прочитать немного о соединяющую и SQL group by:

select T1.MachineId, count(T2.Passfail) from 
Table1 T1 inner join Table2 T2 on T1.MachineId = T2.Machine Id 
group by T1.MachineId 

EDIT: Для отдельного счетчика в зависимости от значений PassFail, я хотел бы использовать:

select T1.MachineId, 
sum(case when T2.PassFail='pass' then 1 else 0 end) as 'pass', 
sum(case when T2.PassFail='fail' then 1 else 0 end) as 'fail' 
from Table1 T1 inner join 
Table2 T2 on T1.MachineId = T2.machineId 
group by T1.machineId 
+0

Привет! спасибо за быстрый ответ! что делать, если у меня есть 2 счета для ввода? например, счет (passfail) WHERE passfail = «pass» и count (passfail) WHERE passfail = «fail»? было бы заявление аналогичным? – Xion

+0

Я изменил свой ответ, чтобы разместить ваше новое требование. @Xion – Ash

+0

Большое вам спасибо! это соответствует тому, что мне нужно – Xion

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