2012-01-30 44 views
-2

我有这些表 Tables 我想有这样的SQL SELECT查询 - 在ONR列显示相关记录

╭────────────┬────────────┬──────┬────────────────────────┬────────────────────────╮ 
│ InvoiceID │ Date │ Sum │ SUM(RecietInvoice.Sum) │ RecietInvoice.RecietID │ 
├────────────┴────────────┴──────┴────────────────────────┴────────────────────────┤ 
│  1  │ 11/11/2010 │ 1200 │   1200   │  34,45   │ 
╰────────────┴────────────┴──────┴────────────────────────┴────────────────────────╯ 

在我想要的RecietInvoice.RecietID结果让所有的RecietID此发票。

+0

看一看http://i.imgur.com/goWIq.png我想有线路29,30,31为单行与RecietID为“7,8,9” – Kulpemovitz 2012-01-30 20:54:32

+1

如果您需要使用逗号分隔列表的帮助,请尝试以下方法:http://stackoverflow.com/questions/3024456/displaying-a-field-as-a-comma- separate-list-in-reporting-services-2005 – 2012-01-30 20:58:32

+0

我想知道10x是什么意思。 (我想我的网站数量增加了10倍) – Hogan 2012-01-30 21:04:54

回答

2

这里有一种方法(未经测试可能有错别字)

Select I.InvoiceID, I.Date, RI.Sum, 
    SUM(R.CashTotal) OVER(PARTITION BY I.InvoiceID) 
    stuff((SELECT ', '+CAST(RecietR2.RecietID as varchar(max)) 
      FROM Reciet R2 
      WHERE RecietR2.InvoiceID = I.InvoiceID 
      FOR XML PATH ('') 
      ), 1, 2, '') as RecietIDs 
FROM Invoice I 
LEFT JOIN RecietInvoice RI ON I.InvoiceID = RI.InvoiceID 
LEFT JOIN Reciet R ON RI.RecietID = R.RecietID 
+0

Msg 156,Level 15,State 1,Line 6 关键字'ORDER'附近的语法错误。 – Kulpemovitz 2012-01-30 21:17:36

+0

听起来像你有不正确的语法...粘贴你做了什么(也许pastebin是一个好点) – Hogan 2012-01-30 21:18:52

+0

@Kulpemovitz好吧,我看到一个错字,我没有演员。我是因为谁在乎而拿出订单的?试试这个版本。 – Hogan 2012-01-30 21:24:08