Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL查询组合成一行_Sql Server_Tsql - Fatal编程技术网

Sql server SQL查询组合成一行

Sql server SQL查询组合成一行,sql-server,tsql,Sql Server,Tsql,我在组合以下查询时遇到一些困难,因此结果显示在一行而不是多行中: SELECT value FROM dbo.parameter WHERE name='xxxxx.name' SELECT dbo.contest.name AS Event_Name FROM contest INNER JOIN open_box on open_box.contest_id = contest.id GROUP BY dbo.contest.name SELECT COUNT(*) FROM open_o

我在组合以下查询时遇到一些困难,因此结果显示在一行而不是多行中:

SELECT value FROM dbo.parameter WHERE name='xxxxx.name'
SELECT dbo.contest.name AS Event_Name
FROM contest
INNER JOIN open_box on open_box.contest_id = contest.id
GROUP BY dbo.contest.name

SELECT COUNT(*) FROM open_option AS total_people

SELECT SUM(scanned) AS TotalScanned,SUM(number) AS Totalnumber
FROM dbo.open_box
GROUP BY contest_id

SELECT COUNT(*) FROM open AS reff
WHERE refer = 'True'
我想显示每列字段中的数据,类似于下图所示。感谢您的帮助


只是
交叉连接
五个查询作为派生表:

SELECT * FROM (
  Query1
) AS q1
CROSS JOIN (
  Query2
) AS q2
CROSS JOIN (...

假设每个查询只返回一行,那么这个
交叉连接应该只会产生一行。

选项卡的解决方案很好,我只是想展示一种替代方法。以下语句用于获取一行中的信息:

SELECT
    [xxxx.name]=(SELECT value FROM dbo.parameter WHERE name='xxxxx.name'),
    [Event Name]=(SELECT dbo.contest.name
        FROM contest
        INNER JOIN open_box on open_box.contest_id = contest.id
        GROUP BY dbo.contest.name),
    [Total People]=(SELECT COUNT(*) FROM open_option),
    [Total Scanned]=(SELECT SUM(scanned)
        FROM dbo.open_box
        GROUP BY contest_id),
    [Total Number]=(SELECT SUM(number)
        FROM dbo.open_box
        GROUP BY contest_id),
    Ref=(SELECT COUNT(*) FROM open WHERE refer = 'True');
这要求分别查询扫描的
总数
总数


更新:如果您想
将其插入另一个表中,基本上有两种方法

  • 直接从
    SELECT
    语句创建表:


  • 插入到已存在于
    Insert


  • 这就像是把东西调换过来。你想要多列还是一个字段(有点串联)?欢迎,通过显示预期结果的模型,你可能会得到一个更快的答案…抱歉-应该显示我想要的。我想多个列,但所有的数据在一行-我需要能够提取到一个新的表table@MalcolmHouston更新答案。
    SELECT
        -- the fields from the first query
    INTO
        [database_name].[schema_name].[new_table_name]; -- creates table new_table_name
    
    INSERT INTO [database_name].[schema_name].[existing_table_name](
        -- the fields in the existing_table_name
    )
    SELECT
        -- the fields from the first query