Pergunta

Eu tenho uma tabela de hardware e uma mesa de incidentes. Cada hardware tem uma marca única, e os incidentes estão ligados ao tag.

Como posso selecionar todo o hardware que tem pelo menos um incidente listado como não resolvido?

Eu não posso apenas fazer uma junção, porque, então, se um pedaço de hardware teve várias questões não resolvidas, ele iria aparecer várias vezes.

Foi útil?

Solução

select distinct(hardware_name) 
from hardware,incidents 
where hardware.id = incidents.hardware_id and incidents.resolved=0;

Outras dicas

Algo como isso deve fazê-lo:

Select A.HardwareID A.HadwareName, B.UnresolvedCount
From (Hardware A) 
Inner Join 
(
  Select HardwareID, Count(1) As UnresolvedCount 
  From Incidents 
  Where Resolved = 0 
  Group By HardwareID
) As B On A.HardwareID = B.HardwareID

Este também pode trabalho

SELECT hd.name, inc.issue, FROM hardware hd INNER JOIN inc ON hd.tag = inc.tag AND inc.issue = 'unresolved' group by hd.name 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top