为我的工作提供一些背景知识。我们使用一个自定义应用程序,可以看到在它作为订单进入我们的ERP系统的时间和发货时间之间构建的产品。
我们的ERP有一个PRODUCT HEAD表和一个PRODUCT DETAIL表。我们使用的自定义应用程序仅查看PRODUCT DETAIL表。因此,当需要运送这些产品时,他们希望能够看到ORDERS组合在一起。
INSERT INTO @tmpTable (ordernum, linenum, model, customer, duedate, status, stage, repcode)
SELECT
ct.ordernum,
ct.linenum,
et.model,
et.customer,
ct.duedate,
ct.status
ct.stage,
ct.repcode
FROM CustomTable ct
LEFT JOIN ERPTable et On et.ordernum = ct.ordernum AND et.linenum = ct.linenum
Select Distinct
top1.ordernum,
top1.customer,
(
Select
ISNULL(linenum, '') AS linenum,
ISNULL(model, '') AS model,
ISNULL(duedate, '') AS duedate,
ISNULL(status, '') AS status,
ISNULL(stage, '') AS stage,
ISNULL(repcode, '') AS repcode
From @tmpTable
Where ordernum = top1.ordernum
For XML Path('LineItem'), ROOT('root')
) As xmlinfo
From @tmpTable as top1
这就是我目前正在处理的问题,我似乎无法找到一种更好的方法来建立一对多的关系。我不是为每个订单单独调用数据库,而是编译所有的' LINES'作为xml。实际的查询要长得多,并且需要在我们的ERP表中加入多个连接,这反过来会使查询速度变慢。我想知道我这样做的方式是否有效。
我想也许我可以使用带有SQL的GROUP BY来实现这一点,但似乎并非如此,我似乎无法找到一种模仿您使用SSRS报告进行分组的方式的好方法角。
我做了一点挖掘,看来实现这一目标的方法是在标签上使用ng-repeat。
- 处理HTML / Angular级别的分组会更好吗?或者我应该坚持在SQL Server端进行分组?