是否可以在一个语句中加入2个sql SELECT语句的结果?我有任务的数据库,其中每个记录是一个单独的任务,最后期限(和P替换,这仅仅是一个从开始到最后期限的天INT,年龄也是天的INT数.)
我想有哪个人都有每个人的桌子上,他们有任务的数量,以及他们有LATE任务数表(如果有的话).
我可以轻松地在单独的表中获取这些数据,如下所示:
SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks
Run Code Online (Sandbox Code Playgroud)
返回数据如:
ks # Tasks
person1 7
person2 3
Run Code Online (Sandbox Code Playgroud)
然后我有
SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks
Run Code Online (Sandbox Code Playgroud)
返回:
ks # Late
person1 1
person2 1
Run Code Online (Sandbox Code Playgroud)
我想加入这两个选择语句的结果(由KS提供)
我试图避免使用临时表,但如果这是唯一可行的方法,我想了解更多关于以这种方式使用临时表的信息.
我也尝试做某种count()#行满足条件,但我也想不出怎么做.如果可能的话,那也会奏效.
附录:对不起,我希望我的结果包含KS,Tasks和Late的列
KS # Tasks # Late
person1 7 1
person2 3 1
person3 2 0 (or null)
Run Code Online (Sandbox Code Playgroud)
另外,即使他们没有迟到的任务,我也希望一个人出现.
SUM(年龄> Palt THEN 1 ELSE 0 END)后期效果很好,感谢您的回答!
两个select语句也可以工作,使用LEFT JOIN加入它们也可以工作,我现在明白了如何以这种方式连接多个选择.谢谢!
所以我有一个内部使用的网站,它跟踪员工的一堆统计数据.其中之一是他们是否缺少任何报告.由于没有报告的项目列表每隔几天才会更新,并且这些报告有3天的宽限期,我将该项目记录为缺少报告的日期(releaseDt)与上次更新数据库(@lastupdate).这样,如果报告数据库尚未更新但报告已完成,则该网站不会因错过报告而让某人失意.
SQL代码可以正常使用管理员级别的权限,但出于显而易见的原因,我不会让ASP.NET帐户具有服务器管理员级别.
我已经设置了一个ASP.NET C#代码用于登录的SQL帐户,其他所有权限都很好.(仅对其使用的特定数据库进行读访问.)我无法弄清楚要授予其访问权限,以便有权访问此特定的动态管理视图.
非常感谢使用Management Studio或使用GRANTSQL语句的建议.
这似乎包含有关视图的相关信息:
sys.dm_db_index_usage_stats(Transact-SQL)
DECLARE @lastupdate datetime
SELECT @lastupdate = last_user_update from sys.dm_db_index_usage_stats
WHERE OBJECT_ID = OBJECT_ID('MissingReport')
SELECT
COALESCE(Creator, 'Total') AS 'Creator',
COUNT(*) AS Number,
'$' + CONVERT(varchar(32), SUM(Cost), 1) AS 'Cost'
FROM MissingReport
WHERE NOT(
[bunch of conditions that make something exempt from needing a report]
OR
(
DATEDIFF(day,ReleaseDt,@lastupdate) <= 3
)
)
GROUP BY Creator WITH ROLLUP
Run Code Online (Sandbox Code Playgroud)