Azure SQL STRING_AGG 作为更大查询的一部分

Azure SQL STRING_AGG as part of larger Query

许多 questions/solutions 我在这里读到描述了如何单独使用 STRING_AGG 并且我可以使用以下方法:

SELECT Offers.Id, STRING_AGG ( Offers2Currencies.CurrencyCode, ', ' ) AS Currencies

FROM  Offers  INNER JOIN Offers2Currencies ON Offers2Currencies.OfferID = 
dbo.Offers.ID

WHERE dbo.Offers.BuyerMemberId = '64ad10b9-85a6-4fc4-b9eb-d9f9af164d2b'

GROUP BY    dbo.Offers.Id

但我正在努力解决如何将其放入更大的查询中的问题,例如:

SELECT
    dbo.Offers.ID,
    dbo.Offers.UTC,
    dbo.Organizations.Code,
    dbo.Entities.EntityAbbrev,
    dbo.Measurables.Name,
    dbo.Offers.Price,
    dbo.Offers.SellerMemberId,
    dbo.AspNetUsers.UserName
    --select STRING_AGG(dbo.Offers2Currencies.CurrencyCode, ', ') Currencies

FROM    dbo.Offers
  INNER JOIN dbo.AspNetUsers ON dbo.AspNetUsers.Id = dbo.Offers.SellerMemberId
  INNER JOIN dbo.MemberCreditRatings ON dbo.AspNetUsers.Id = dbo.MemberCreditRatings.MemberGUID
  INNER JOIN dbo.Measurables ON dbo.Offers.MeasurableID = dbo.Measurables.ID
  INNER JOIN dbo.Entities ON dbo.Offers.EntityID = dbo.Entities.ID
  INNER JOIN dbo.Organizations ON dbo.Measurables.OrganizationID = dbo.Organizations.ID
  --INNER JOIN dbo.Offers2Currencies ON dbo.Offers2Currencies.OfferID = dbo.Offers.ID
  AND dbo.Entities.OrganizationID = dbo.Organizations.ID

WHERE   dbo.Offers.BuyerMemberId = '64ad10b9-85a6-4fc4-b9eb-d9f9af164d2b'

我(认为)我想通了——将所有被选择的字段放入分组依据(尽管它们永远不会在第一个分组依据之外访问)——参见 http://sqlfiddle.com/#!18/aaa65/7(并建议是否更好或替代解决方案)