私は、グループメンバーからの月割りのSQLテーブルを持っています。Sql月額未払いを検索するクエリ
Member A : 10 (Monthly Fee),
Member B : 15 (Monthly Fee)
私のデータベース表
私は次のように返すことができますクエリを探しています。 PICに見られるよう は私が支払い
あなたの例のデータに基づいて
私は、グループメンバーからの月割りのSQLテーブルを持っています。Sql月額未払いを検索するクエリ
Member A : 10 (Monthly Fee),
Member B : 15 (Monthly Fee)
私のデータベース表
私は次のように返すことができますクエリを探しています。 PICに見られるよう は私が支払い
あなたの例のデータに基づいて
と私はいつも、むしろあなたのプレゼンテーションアプリケーションにPIVOT
にあなたのデータをお勧めしますけれども、あなたがPIVOT
を使用することができ所望の出力に欠けている見つけるために取得帰着する必要がデータベースクエリよりも列名の動的なリストについては
USE
tempdb
GO
IF OBJECT_ID('Payments', 'U') IS NOT NULL
DROP TABLE Payments
GO
CREATE TABLE Payments(
Serial# INT NOT NULL PRIMARY KEY
,Date DATE NOT NULL
,MemberName VARCHAR(20) NOT NULL
,Month VARCHAR(20) NOT NULL
,MonthlyFee INT NOT NULL
);
INSERT INTO Payments(Serial#,Date,MemberName,Month,MonthlyFee) VALUES (1,'01/01/2017','Member A','January',10);
INSERT INTO Payments(Serial#,Date,MemberName,Month,MonthlyFee) VALUES (2,'01/01/2017','Member B','January',15);
INSERT INTO Payments(Serial#,Date,MemberName,Month,MonthlyFee) VALUES (3,'01/02/2017','Member A','February',10);
INSERT INTO Payments(Serial#,Date,MemberName,Month,MonthlyFee) VALUES (4,'01/03/2017','Member B','March',15);
INSERT INTO Payments(Serial#,Date,MemberName,Month,MonthlyFee) VALUES (5,'01/03/2017','Member A','March',10);
INSERT INTO Payments(Serial#,Date,MemberName,Month,MonthlyFee) VALUES (6,'01/05/2017','Member A','May',10);
INSERT INTO Payments(Serial#,Date,MemberName,Month,MonthlyFee) VALUES (7,'01/06/2017','Member A','June',10);
INSERT INTO Payments(Serial#,Date,MemberName,Month,MonthlyFee) VALUES (8,'01/05/2017','Member B','May',15);
INSERT INTO Payments(Serial#,Date,MemberName,Month,MonthlyFee) VALUES (9,'01/09/2017','Member A','September',10);
INSERT INTO Payments(Serial#,Date,MemberName,Month,MonthlyFee) VALUES (10,'01/06/2017','Member B','June',15);
INSERT INTO Payments(Serial#,Date,MemberName,Month,MonthlyFee) VALUES (11,'01/10/2017','Member A','October',10);
SELECT
MemberName
, January
, February
, March
, April
, May
, June
, July
, August
, September
, October
, November
, December
FROM
(
SELECT
MemberName
, Month
, MonthlyFee
FROM
Payments
) AS P
PIVOT
(
SUM(MonthlyFee)
FOR [Month] IN
(
January
, February
, March
, April
, May
, June
, July
, August
, September
, October
, November
, December
)
) AS Pvt
、あまり異なるmheptinstallのアプローチから
Declare @cols1 varchar(max)
Declare @query nvarchar(max)
Select @cols1 = stuff((select top (12) ','+QuoteName(DateName(MONTH,(DateAdd(MM, Row_Number() over(order by (Select NULL))-1, '2017-01-01'))))
from master..spt_values for xml path('')),1,1,'')
Select @query = ' Select * from (
Select MemberName, [Month], MonthlyFee from Payments) a
pivot(sum(MonthlyFee) for [Month] in ('+ @cols1 + ')) p '
Exec SP_ExecuteSql @query
あなたも今年考えるのですか? –
たとえば、2017年1月に2016年12月の支払い記録を受け取ることはできますか? –