SQL select query - отображать связанные записи в столбце onr - PullRequest
0 голосов
/ 31 января 2012

У меня есть эти таблицы Tables Я хочу получить такой результат

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

В RecietInvoice.RecietID я хочу иметь все RecietID для этого счета.

1 Ответ

2 голосов
/ 31 января 2012

Вот один из способов (непроверенные могут иметь опечатки)

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
...