2010-05-31 11 views
2

J'ai deux tablesSqlite Vue: Ajouter une colonne basée sur une autre colonne

employés

ID | Name | Department 
---------------------- 
121 |Name1 | dep1 
223 |Name2 | dep2 

Attribution

ID | EID| 
--------- 
1 |121 
2 |223 
3 |121 

[autres colonnes omises par souci de concision]

L'affectation de la table indique quel travail est assigné à qui.EID est une clé étrangère à la table Employee. Il est également possible d'affecter deux tâches au même employé.

Maintenant, je veux créer une vue comme celui-ci

EID | Assigned 
-------------- 
121 |true 
333 |false 

colonne assignée doit être calculée sur la base des entrées de la table d'affectation.

Jusqu'à présent, je ne suis réussi à créer une vue comme celui-ci

EID | Assigned 
-------------- 
121 |2 
333 |0 

en utilisant la commande

CREATE VIEW "AssignmentView" AS 
SELECT distinct ID ,(select Count(*) 
from Assignment where Assignment.EID = Employee.ID) as Assigned 
FROM Employee; 

Merci

Répondre

2

L'expression CASE et un GROUP BY devrait faire l'affaire:

Select 
    e.id, 
    Case When Count(a.eid) > 0 Then 'true' Else 'false' End As assigned 
From employee e 
Left Join assignment a On (a.eid = e.id) 
Group By e.id; 
+0

Merci Peter.Il a travaillé :) – Ranjith

Questions connexes