這里有一個直接的方法來實現這一點,而不必求助于PIVOT和動態SQL: DECLARE @Employee table ( empid int, empname varchar(50), id int IDENTITY(1,1) );INSERT INTO @Employee VALUES ( 1000, 'Bill Gates' ), ( 1001, 'Elon Musk' );DECLARE @EmpSales table ( empid int, bill_date date, sale int );INSERT INTO @EmpSales VALUES ( 1000, '01/01/2020', 100 ), ( 1000, '01/15/2020', 100 ), ( 1000, '02/15/2020', 50 ), ( 1000, '04/01/2020', 25 );SELECT e.empid, e.empname, s.*FROM @Employee eOUTER APPLY ( SELECT ISNULL( SUM( CASE WHEN DATENAME( month, n.bill_date ) = 'January' THEN n.sale ELSE 0 END ), 0 ) AS [Jan], ISNULL( SUM( CASE WHEN DATENA