sql >> Database >  >> RDS >> Sqlserver

Meerdere rijen uit meerdere tabellen samenvoegen

Bedankt voor de essentie! Zoveel beter dan tanden trekken om schema's en gegevens te krijgen. :-) Als je dit invoegt in je kernvraag, zou je de resultaten moeten zien die je zoekt (nou ja, heel dichtbij - zie hieronder).

DECLARE @SalesRepID INT, @SurgeonID INT, @LocationID INT;
SELECT @SalesRepID = 2, @SurgeonID = 1, @LocationID = 1;

;WITH x AS 
(
  SELECT CommissionPercent, Categories = STUFF((SELECT ', ' 
      + tCat.Category FROM #tCategories AS tCat 
      INNER JOIN #tCommissions AS tCom 
      ON tCat.CategoryID = tCom.CategoryID
      WHERE tCom.CommissionPercent = com.CommissionPercent
      FOR XML PATH, TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') 
 FROM #tCommissions AS com
 WHERE SalesRepID = @SalesRepID
 AND SurgeonID = @SurgeonID
 AND LocationID = @LocationID
),
y AS
(
  SELECT s = RTRIM(CommissionPercent) + ' (' + Categories + ')' 
  FROM x GROUP BY CommissionPercent, Categories
)
SELECT Result = STUFF((SELECT ', ' + s FROM y 
  FOR XML PATH, TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '');

Het resultaat is iets anders dan waar u om vroeg, maar u kunt dit oplossen door tekenreeksopmaak toe te passen bij het ophalen van CommissionPercent.

Result
--------------------------------------------------------
0.05 (Shirts, Shoes, Dresses), 0.10 (Hats), 0.15 (Pants)


  1. Importeer enkele database uit --all-databases dump

  2. Hoe een willekeurig nummer te genereren zonder herhaling in de database met behulp van PHP?

  3. Hoe Postgresql KOPIREN NAAR STDIN Met CSV doen op conflic doen update?

  4. R RMySQL-query vervormt Japanse tekens