在单行结果集中返回多行

时间:2018-12-23 00:01:24

标签: sql-server tsql

我有三个MSSQL表。第一个表是物料交易,第二个表是物料表(在这里我得到物料的名称和特定物料的其他规格) 第三个表是物料交付类型表(如“包装箱”,“包装”和“件数”及其换算系数)

第一个表格字段;

..., itemid, trtype, trdate, amount, price, dlvid ...

第二个表格字段;

..., itemid, itemcode, itemname ...

第三个表格字段;

... dlvid, IsMain, dlvname, convfactor ...

11 1 Box  [1]

12 0 Pack [25]   (1 box = 25 Packs)

13 0 Pcs  [375]  (1 Pack = 15 Pcs, 1 Box = 375 Pcs)

括号中的数字是转换因子

之前,我将它们置于gridview中。项目名称(来自第2个表),trtype,trdate,金额(来自第1个表)和dlvname(来自第3个表),就可以了。

但是现在我必须将所有交付类型都显示为一行,其计算方式如下;

Faber绘图铅笔3B |出| 05.06.2018 | 6盒150包2,250  个人电脑...

您能帮我这些吗?

谢谢。

1 个答案:

答案 0 :(得分:-1)

首先,我想告诉您,您的问题质量很低。很难理解您的表和数据类型。甚至不清楚不清楚在哪种情况下您会遇到问题?

因此,下次请阅读How to create a Minimal, Complete, and Verifiable example

这是您的答案:

select 
  ...
  STRING_AGG (concat(amount, ' ', trtype), ',') within group (order by amount asc)
from 
  Table 1 
Inner Join Table2 on ....
inner join table3 on ...