如何在同一行中返回2行字段?

时间:2016-05-27 16:17:22

标签: sql sql-server reporting-services reportbuilder3.0

以下查询中的每一行都会返回1个唯一行。 然而 ,如果我要添加另外两个字段jobsuffix字段,我会得到一些重复{{1}的行}数字(这是预期的)。

我想实际返回itemjob行信息,但是所有在一个字段和一行中用逗号分隔。 See this link for a description of what I want to do。我不能使用这个例子,因为我没有能力写一个表,我只能用这个来创建查询/报告/子报告。我怎么能这样做?

suffix

更新

我尝试使用SELECT c.item, c.qty_ordered AS qty_expected, Sum(j.qty_released) AS sum_qty_released, Sum(j.qty_complete) AS sum_qty_complete, ( Sum(j.qty_complete) - c.qty_ordered ) AS expected_variance, ( Sum(j.qty_complete) - Sum(j.qty_released) ) AS regular_variance, j.whse FROM coitem AS c LEFT OUTER JOIN job AS j ON c.item = j.item AND Dateadd(d, -6, c.due_date) = j.job_date WHERE j.job_date = @jobdate AND j.item IN (SELECT j.item AS current_item FROM job AS j WHERE j.job_date = @jobdate AND j.item NOT LIKE 'Indirect' AND j.job NOT LIKE 'C%') GROUP BY c.item, c.qty_ordered, j.whse ORDER BY j.whse, c.item 来解决这个问题,但我无法让它发挥作用。我收到这个错误:

  

FOR XML Path

最棘手的部分是我想要在一行中返回的信息是作业 后缀。所以我需要首先连接这两个字段然后将行聚合到一个字段中。但我认为,由于汇总更加困难,我应该从那开始。因此,我在下面的尝试只关注聚合部分。

这是我的代码:

Incorrect syntax near the keyword 'FOR'. Incorrect syntax near the keyword 'GROUP'.

1 个答案:

答案 0 :(得分:0)

在Oracle中,您可以使用ListAgg()。 在这篇文章中,他们将向您解释如何在MSSQL中执行此操作。 ListAGG in SQLSERVER