2013-01-23 5 views
0

Je dois trouver l'inventaire total et l'inventaire disponible du tableau ci-dessous. Tableau Structure:La requête mysql ne fonctionne pas avec join si une requête ne va pas chercher

[Inventoryid] [inventory Type ] [issue status] 
1    Mobile   Issued 
2    Tablet   Not Issued 
3    Mobile   Issued 
4    Tablet   Not Issued 

Le outpot nécessaire est

[Inventory Type] [Total Inventory] [Available Inventory] 
Mobile   2     0 
Tablet   2     2 

S'il vous plaît donnez-moi la requête pour la même.

Répondre

4
SELECT inventoryType, 
     COUNT(*) totalInventory, 
     SUM(issuestatus = 'not issued') available 
FROM tableName 
GROUP BY inventoryType 
+0

+1 pour réponse courte – neeraj

1
select inventory_type , count(*), sum(case when issue_Status = 'not issued' then 1 
else 0 end) as status 
From yourtable 
group by inventory_type 
; 
+1

Ceci est plus portable que l'autre réponse, même si vous avez mélangé vers le haut: il devrait être 'quand issue_Status = « non émis 'puis 1 sinon 0'. –

+0

@AndriyM oh shoot..thanks manqué cela .. cela fonctionnera dans les SGBDR comme Oracle ainsi :) où 'Sum (booléen)' ne fonctionnera pas .. – bonCodigo

+0

@AndriyM oui, c'est 'MySQL' spécifique. mais alors la question était * premièrement * tag avec 'MySQL' pas avec 'SQL' seulement. –