【发布时间】:2017-06-08 17:58:02
【问题描述】:
我有两张桌子
-
开发者
- Developer_Id
- 全名
- 手机号码
- 电子邮件地址
- 团队
- 角色
- 分配给
-
工作清单
- Job_Id
- 作业名称
- 作业说明
- 创建者
- 创建日期
- 截止日期
- 状态
我想查看 JobList 表,但它应该包括:
- Developers.Full Name
- Developers.Team
- Developers.Role
- Developers.Assigned To
我创建了一个视图,但它返回的重复值如下:
有什么方法可以在一行中查看 JobList 表,但包括 Developers 表中的多行,像这样
这是我使用的代码
创建表:
CREATE TABLE [dbo].[Developers] (
[Developer_Id] INT NOT NULL,
[Full Name] VARCHAR (50) NULL,
[Cellphone number] VARCHAR (50) NULL,
[Email address] VARCHAR (50) NULL,
[Team] VARCHAR (50) NULL,
[Role] VARCHAR (50) NULL,
[Assigned To] INT NULL,
CONSTRAINT [PK_Developers] PRIMARY KEY ([Developer_Id])
);
CREATE TABLE [dbo].[JobList] (
[Job_Id] INT NOT NULL,
[Assignment Name] VARCHAR (50) NULL,
[Assignment Description] VARCHAR (MAX) NULL,
[Created By] VARCHAR (50) NULL,
[Date Created] DATE NULL,
[Due Date] DATE NULL,
[Status] VARCHAR(50) NULL,
CONSTRAINT [PK_JobList] PRIMARY KEY ([Job_Id])
);
创建视图
CREATE VIEW [dbo].AssignedJobs
AS SELECT JobList.[Assignment Name], JobList.[Assignment Description], JobList.[Due Date], JobList.[Status],Developers.[Full Name], Developers.[Role]
from JobList
inner join Developers
on JobList.Job_Id = Developers.[Assigned To]
【问题讨论】:
-
你得到的结果是连接是如何工作的,你不能有一个包含多行的单行。
-
您的预期输出与 SQL Server 实际输出的任何内容都不对应。你能忍受全名显示为 CSV,例如
User1, User2?还是你想要别的? -
您还可以将开发人员姓名转至列。 stackoverflow.com/questions/15931607/…
-
我应该怎么做才能获得单行?
标签: sql sql-server