SQL-编写脚本以显示项目名称和日期
我是SQl新手,正在做一些练习。我正在尝试做脚本,但需要一些帮助,如果有人能帮我完成下面的主题,我将不胜感激 表格结构SQL-编写脚本以显示项目名称和日期,sql,sql-server,Sql,Sql Server,我是SQl新手,正在做一些练习。我正在尝试做脚本,但需要一些帮助,如果有人能帮我完成下面的主题,我将不胜感激 表格结构 **Project** ID(PK) NAME Due_Date 1 Alpha 1/1/2040 2 Bravo 3/1/2030 3 Charlie 2/1/2017 4 Delta 4/1/2017 *Employee* ID(PK) NAM
**Project**
ID(PK) NAME Due_Date
1 Alpha 1/1/2040
2 Bravo 3/1/2030
3 Charlie 2/1/2017
4 Delta 4/1/2017
*Employee*
ID(PK) NAME
1 Kevin
2 Mike
3 Eric
4 Ira
5 Peter
*Project Assignment*
ID(PK) ProjectID(FK) EmployeeID(FK)
1 1 1
2 1 2
3 2 2
4 2 3
5 3 3
6 3 4
7 1 3
问题
编写一个脚本,该脚本将返回所有项目名称以及所有尚未完成的项目的到期时间(以天为单位)。如果您的问题询问正确,则您只需要项目表。但我怀疑这是你想要的
SELECT Name,
DATEDIFF (DAY, GETDATE(), Due_Date) AS DaysRemaining
FROM Project
WHERE Due_Date > GETDATE()
如果您需要包含员工数据,请调整您的问题
据我所知,我是这样做的
回复我任何需要的澄清
@格雷格。。谢谢-你介意为我的示例演示一下它是如何完成的吗?@Sql_numskull已经更新。•@Greggz为什么OP必须创建存储过程?如果due_date列是varchar,那么cast是as date。太好了。。有道理。。我把事情复杂化了,因为我看到剧本里的话非常感谢你。这给了我答案和更多,因为它也加入了员工的行列。所以它显示了员工、项目和天数remaining@Ranjiith-如何编辑此内容,以便只显示已完成的项目?@Sql\u numskull Iam已根据您的期望更新我的查询。
select pa.ID,e.NAME,p.NAME,p.Due_Date, DATEDIFF (DAY, GETDATE(), Due_Date) AS
DaysRemaining from
Project_Assignment pa inner join project p
on pa.projectid = p.id
inner join Employe e
on pa.EmployeeID = e.ID
and p.due_date > getdate()