Je tente de créer une sorte de vue "récapitulative", où les valeurs doivent provenir de plusieurs tables différentes ([Compte], [Branche], [Client], [Employé], [Transaction], [FlaggedTrans]) . Comme je ne peux pas faire un grand nombre d'instructions SELECT dans une vue, j'essaye d'accomplir la tâche en utilisant INNER JOINs, ce qui est mon problème.Comment puis-je extraire des enregistrements de plusieurs tables différentes dans une vue unique dans SQL Server 2008 R2?
Voici ce que j'ai jusqu'à présent:
CREATE VIEW Summary
AS
SELECT NEWID() AS Summary_Id,
COUNT(C.Customer_Id) AS CustCount,
COUNT(A.Account_Id) AS AcctCount,
COUNT(T.Transaction_Id) AS TransCount,
COUNT(B.Branch_Id) AS BranchCount,
COUNT(E.Employee_Id) AS EmplCount,
CAST(SUM(A.Balance) AS INT) AS BalTotal,
COUNT(F.FlaggedTrans_Id) AS FlagCount
FROM dbo.Account A INNER JOIN
dbo.Customer C ON A.Customer_Id = C.Customer_Id INNER JOIN
dbo.Employee E ON A.Employee_Id = E.Employee_Id INNER JOIN
dbo.[Transaction] T ON A.Account_Id = T.Account_Id INNER JOIN
dbo.FlaggedTrans F ON E.Employee_Id = F.Employee_Id CROSS JOIN
dbo.Branch B
semble assez logique, mais cela cause toutes les valeurs de revenir comme NULL ou 0. Qu'est-ce que je fais mal?
Merci M ark, c'est exactement ce que j'avais besoin de faire, mais pour une raison quelconque, je négligeais de mettre (parenthèses) autour des sous-requêtes, ce qui provoquait évidemment des erreurs de SSMS. –
Content d'aider Chris. –