简体   繁体   English

组合标量查询和返回多列的子查询的结果

[英]Combine scalar query and results from a subquery that returns multiple columns

Is there a way to combine two queries one a scalar query and other a multiple column subquery to return the data in one row?有没有办法组合两个查询,一个是标量查询,另一个是多列子查询,以在一行中返回数据?

SELECT 
    DB_NAME() DB,
    (select SettingValue from Settings where SettingName = 'XYZ') 'Is XYZ',
    (SELECT Department.DeptName, COUNT(*) 
        FROM (SELECT DISTINCT substring(Source, len(Source) - 17, 14) AS DeptId FROM AuditLog) LogDept 
        inner join Department on LogDept.DeptId = Department.DeptId
        GROUP BY Department.DeptName) 

I want the result like我想要这样的结果

DB D B Is XYZ是 XYZ DeptName部门名称 Count数数
TEST测试 True真的 FIN 20 20
TEST测试 True真的 HR人力资源部 12 12

Literally just add them to your sub-query and make it your main query.从字面上看,只需将它们添加到您的子查询并使其成为您的主查询。

SELECT
    DB_NAME() DB
    , (SELECT SettingValue FROM Settings WHERE SettingName = 'XYZ') 'Is XYZ'
    , D.DeptName, COUNT(*) 
FROM (
    SELECT DISTINCT substring(Source, len(Source) - 17, 14) AS DeptId
    FROM AuditLog
) LogDept AS LD
INNER JOIN Department AS D ON D.DeptId = LD.DeptId
GROUP BY D.DeptName;

And I recommend the use of short table aliases as I have demonstated.我建议使用我已经演示过的短表别名。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM