【发布时间】:2010-01-01 19:17:49
【问题描述】:
我正在处理一些关于我的作业的问题,我们将不胜感激。
- 列出分支机构以及员工人数和分配给他们的客户、总贷款金额、总账户余额、位于给定城市的分支机构的资产。
- 列出在给定时间段内进行账户和贷款操作的客户
- 列出员工以及在给定时间段内每个客户服务的人数
我想一个简单的例子就足够我解决休息了。
这是我迄今为止尝试的第一个:
ALTER PROCEDURE [dbo].[SelecBranchesByCity]
(@City varchar(50))
AS
select
Br.Name as BranchName,
COUNT(emps.ID) as NumberOfEmployee,
SUM(emps.NumberOfCustomers) as TotalCustomers,
SUM(lo.Amount) as TotalAmountOfLoan,
SUM(acc.Balance) as TotalBalance,
Br.Assets as Assets
from Branches Br
left outer join Employees emps on emps.[BranchName] = Br.Name
left outer join Loans lo on lo.[BranchName] = Br.Name
left outer join Accounts acc on acc.[BranchName] = Br.Name
where
Br.[Address] like '%'+@City+'%'
GROUP BY
Br.ID,
Br.Name,
Br.Assets
这是架构!
【问题讨论】:
-
请展示你的尝试:)
-
好的,这是我正在尝试的第一个 ALTER PROCEDURE [dbo].[SelecBranchesByCity] @City varchar(50) AS BEGIN select Br.Name as BranchName, COUNT(emps.ID)作为 NumberOfEmployee,SUM(emps.NumberOfCustomers) 作为 TotalCustomers,SUM(lo.Amount) 作为 TotalAmountOfLoan,SUM(acc.Balance) 作为 TotalBalance,Br.Assets 作为来自分支机构的资产 Br 左外连接员工 emps 上的 emps.[BranchName] = Br.Name left outer join Loans lo on lo.[BranchName] = Br.Name left outer join Accounts acc on acc.[BranchName] = Br.Name where Br.[Address] like '%'+@City+'%' GROUP BY Br.ID、Br.Name、Br.Assets
-
不管怎样,
Customers应该不在表中包含loanID,因为客户可以拥有多个贷款账户。此外,您的LoanCustomer表中已经有Customers和Loans之间的链接。 -
@Kubi:您应该使用此信息更新您的问题,不要将其发布在 cmets 中,因为人们很难阅读和/或编辑格式。
-
虽然我知道我们中的一些人发出了有关架构的警告,但重做它然后更改您的问题并不是很好,这会使以前的答案无效并期望人们离开再次通过该过程。不仅如此,您的示例查询既不匹配新模式也不匹配旧模式。恕我直言,我很乐意帮助人们,但这不是一个提供一对一教程的网站;大多数人不会愿意花无限的时间来帮助你完成一项任务,尤其是当你的问题是三方的,而你只要求一个“简单的例子”时。
标签: sql-server join