Sql 将5行与2行合并?请按照DKyleo的要求提供示例源数据和所需输出。@IvanStarostin我不能提供示例数据,因为它包含不允许共享的真实信息。我需要的理想输出是:在我的报告中,我有单独的研讨会信息数据集(第一次查询)和单独的研讨会与会者数据集(第二次
Sql 将5行与2行合并?请按照DKyleo的要求提供示例源数据和所需输出。@IvanStarostin我不能提供示例数据,因为它包含不允许共享的真实信息。我需要的理想输出是:在我的报告中,我有单独的研讨会信息数据集(第一次查询)和单独的研讨会与会者数据集(第二次,sql,sql-server,Sql,Sql Server,将5行与2行合并?请按照DKyleo的要求提供示例源数据和所需输出。@IvanStarostin我不能提供示例数据,因为它包含不允许共享的真实信息。我需要的理想输出是:在我的报告中,我有单独的研讨会信息数据集(第一次查询)和单独的研讨会与会者数据集(第二次查询)。我需要将它们组合成一个数据集,这样我就可以为传入Sem_ID的每个研讨会ID值显示多个网格。没有人想要您的敏感数据(1,2,3),(4,5)->(1,2,3,空),(4,空,空,5)-类似的东西到单个数据集什么样的数据集?我们应该如何知
将5行与2行合并?请按照DKyleo的要求提供示例源数据和所需输出。@IvanStarostin我不能提供示例数据,因为它包含不允许共享的真实信息。我需要的理想输出是:在我的报告中,我有单独的研讨会信息数据集(第一次查询)和单独的研讨会与会者数据集(第二次查询)。我需要将它们组合成一个数据集,这样我就可以为传入Sem_ID的每个研讨会ID值显示多个网格。没有人想要您的敏感数据<代码>(1,2,3),(4,5)->(1,2,3,空),(4,空,空,5)-类似的东西<编码>到单个数据集什么样的数据集?我们应该如何知道不同的数据集应该如何“组合”成一个?工会?完全加入?交叉连接+聚合?Left join?能否提供两个数据集的示例以及查询结果?@DKyleo抱歉,忘记包含第二个查询。编辑了我的问题,并添加了ID 137210的结果图片
5,ID 137211的结果图片2。
将5行与2行组合的逻辑是什么?请按照DKyleo的要求提供示例源数据和所需输出。@IvanStarostin我不能提供示例数据,因为它包含不允许共享的真实信息。我需要的理想输出是:在我的报告中,我有单独的研讨会信息数据集(第一次查询)和单独的研讨会与会者数据集(第二次查询)。我需要将它们组合成一个数据集,这样我就可以为传入Sem_ID的每个研讨会ID值显示多个网格。没有人想要您的敏感数据<代码>(1,2,3),(4,5)->(1,2,3,空),(4,空,空,5)-类似的东西<编码>到单个数据集什么样的数据集?我们应该如何知道不同的数据集应该如何“组合”成一个?工会?完全加入?交叉连接+聚合?左加入?谢谢你的回答。我需要将多个数据集合并为一个数据集的原因是,我的报表中有4个不同的网格,它们使用来自不同表的数据。我们要做的是在一个字符串参数中传递多个ID值,而我以前在SSRS中从未做过类似的事情,尤其是在一个tablix行中传递多个网格。@Bernard Polman-也许子报表会对您有所帮助。试着使用它们。您可以在这里查看我的演示项目-TestData.sql
-创建测试数据库的脚本<代码>报告项目1-演示SSRS项目<代码>图片N.png-请看截图。感谢您的回答。我需要将多个数据集合并为一个数据集的原因是,我的报表中有4个不同的网格,它们使用来自不同表的数据。我们要做的是在一个字符串参数中传递多个ID值,而我以前在SSRS中从未做过类似的事情,尤其是在一个tablix行中传递多个网格。@Bernard Polman-也许子报表会对您有所帮助。试着使用它们。您可以在这里查看我的演示项目-TestData.sql
-创建测试数据库的脚本<代码>报告项目1-演示SSRS项目<代码>图像N.png-同时查看屏幕截图。
SELECT Sem_ID, Sem_KW, Sem_Jahr, Sem_SemNrKata, Sem_von, Sem_bis, h.chr_name, h.chr_ort
FROM acc_seminar.t_Seminar
JOIN dbo.tbl_hotel h ON Sem_Ht_ID=h.pk_hotel
WHERE Sem_ID IN (SELECT value
FROM fn_Split(@Sem_ID, ';')
WHERE RTRIM(value) <> '') AND (Sem_SemTh_ID != 76 AND Sem_Sto = 0)
SELECT tu.TU_Name AS Name, tu.TU_Vorname AS Vorname, ParkgebuehrBrutto AS Preis
FROM acc_seminar.t_Teiluber_Ext tux
JOIN acc_seminar.t_Teiluber tu ON tux.TeiluberId = tu.TU_ID
JOIN acc_seminar.t_Seminar s ON tu.TU_Sem_ID = s.Sem_ID
WHERE s.Sem_ID IN (SELECT value
FROM fn_Split(@Sem_ID, ';')
WHERE RTRIM(value) <> '')
AND ParkgebuehrBrutto IS NOT NULL
-- query 1
SELECT
col1,
col2,
col3,
col4,
NULL col5 -- this column is not exist in the query 1
FROM ...
UNION ALL
-- query 2
SELECT
NULL col1, -- this column is not exist in the query 2
col2,
col3,
NULL col4, -- this column is not exist in the query 2
col5
FROM ...
SELECT
Sem_ID, Sem_KW, Sem_Jahr, Sem_SemNrKata, Sem_von, Sem_bis, h.chr_name, h.chr_ort,
NULL Name, NULL Vorname, NULL Preis
FROM acc_seminar.t_Seminar
JOIN dbo.tbl_hotel h ON Sem_Ht_ID=h.pk_hotel
WHERE Sem_ID IN (SELECT value
FROM fn_Split(@Sem_ID, ';')
WHERE RTRIM(value) <> '') AND (Sem_SemTh_ID != 76 AND Sem_Sto = 0)
UNION ALL
SELECT
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
tu.TU_Name AS Name, tu.TU_Vorname AS Vorname, ParkgebuehrBrutto AS Preis
FROM acc_seminar.t_Teiluber_Ext tux
JOIN acc_seminar.t_Teiluber tu ON tux.TeiluberId = tu.TU_ID
JOIN acc_seminar.t_Seminar s ON tu.TU_Sem_ID = s.Sem_ID WHERE s.Sem_ID IN (SELECT value
FROM fn_Split(@Sem_ID, ';')
WHERE RTRIM(value) <> '') AND ParkgebuehrBrutto IS NOT NULL
;WITH cte1 AS(
SELECT Sem_ID, Sem_KW, Sem_Jahr, Sem_SemNrKata, Sem_von, Sem_bis, h.chr_name, h.chr_ort, ROW_NUMBER()OVER(ORDER BY Sem_ID) N
FROM acc_seminar.t_Seminar
JOIN dbo.tbl_hotel h ON Sem_Ht_ID=h.pk_hotel
WHERE Sem_ID IN (SELECT value
FROM fn_Split(@Sem_ID, ';')
WHERE RTRIM(value) <> '') AND (Sem_SemTh_ID != 76 AND Sem_Sto = 0)
),
cte2 AS(
SELECT tu.TU_Name AS Name, tu.TU_Vorname AS Vorname, ParkgebuehrBrutto AS Preis, ROW_NUMBER()OVER(ORDER BY tu.TU_Name) N
FROM acc_seminar.t_Teiluber_Ext tux
JOIN acc_seminar.t_Teiluber tu ON tux.TeiluberId = tu.TU_ID
JOIN acc_seminar.t_Seminar s ON tu.TU_Sem_ID = s.Sem_ID
WHERE s.Sem_ID IN (SELECT value
FROM fn_Split(@Sem_ID, ';')
WHERE RTRIM(value) <> '')
AND ParkgebuehrBrutto IS NOT NULL
)
SELECT
cte1.Sem_ID, cte1.Sem_KW, cte1.Sem_Jahr, cte1.Sem_SemNrKata, cte1.Sem_von, cte1.Sem_bis, cte1.chr_name, cte1.chr_ort,
cte2.Name,cte2.Vorname,cte2.Preis
FROM cte1
FULL JOIN cte2 ON cte1.N=cte2.N
ORDER BY ISNULL(cte1.N,cte2.N)