小编kin*_*nix的帖子

SQL Server:将结果从一对多查询展平

好的,我有一个输入订单的系统,每个订单都可以附加任意数量的债券,工作和项目编号.该OrderDetails表包含一个orderID用于转到OrderNumbers表并获取所有附加"数字"到此订单,然后根据在numType那里找到的列,它进入三个表之一(bond,job,project)并检索实际数字为用户显示和打印.

这意味着,如果该订单附加了3个项目编号,则尝试查询订单以搜索某个项目编号可以为同一订单返回3行.

我希望能够返回我的查询结果,只有1行的订单,以及包含所有3个分隔形式的项目的列,这可能吗?

这是我当前的查询,当订单附加多个相同类型的数字时,每个订单返回多行...

SELECT 
    ISNULL(b.Descr,'') as Bond, ISNULL(PO.Description,'') as PO, 
    ISNULL(j.Descr,'') as Job, ISNULL(Proj.Descr,'') as Project, 
    d.OrdNbr, d.BillofLadingNbr, d.TripAndDeliveryTicketNbr
FROM 
    OrderDetail d 
LEFT JOIN 
    OrderItemNumbers n ON d.OWID = n.LoadOWID 
LEFT JOIN 
    Bond b ON n.NumberOWID = b.OWID AND n.NumType = 0
LEFT JOIN 
    PONumbers PO ON n.NumberOWID = PO.OWID AND n.NumType = 1 
LEFT JOIN 
    Job j ON n.NumberOWID = j.OWID AND n.NumType = 2 
LEFT JOIN 
    Project Proj ON …
Run Code Online (Sandbox Code Playgroud)

sql sql-server one-to-many flatten sql-server-2008

5
推荐指数
1
解决办法
5986
查看次数

标签 统计

flatten ×1

one-to-many ×1

sql ×1

sql-server ×1

sql-server-2008 ×1