レポートの目的で、返されたデータが特定の方法でグループ化されるようにストアドプロシージャを設定する際に問題があります。私は非契約部門の結果セットをグループ化し、非契約部門のグループごとに、からそれぞれ契約部門の関連データを表示します。特定の契約部門に対して行が存在しない場合は、依然として0の値で契約部門を表示したいと考えています。ストアドプロシージャからの結果セットのグループ化
参考までに、非契約部門には(B、D、E、F、G、H、 J、K、L、M、V)および契約部門には(C、O、T、NHQ、National)が含まれます。 IDパラメータを渡すことで目的のグループ分けを達成することができました。結果セットは単一の非契約部門のものでしたが、すべての非契約部門を適切なグループ分けで一度に返すことができる必要があります。
The result set should look similar to this
いくつかのDDLとテストデータ:
CREATE TABLE [dbo].[RcmpDivision]
(
[ID] [int] PRIMARY KEY IDENTITY(1,1) NOT NULL,
[DivisionName] [varchar](50) NOT NULL,
[IsContractDivision] [bit] NOT NULL
)
CREATE TABLE [dbo].[DivisionalTransaction]
(
[ID] [int] PRIMARY KEY IDENTITY(1,1) NOT NULL,
[FiscalYearID] [int] NOT NULL,
[ToDivisionID] [int] NOT NULL,
[FromDivisionID] [int] NOT NULL,
[IsRmCredit] [bit] NOT NULL
)
ALTER TABLE [dbo].[DivisionalTransaction]
WITH CHECK ADD CONSTRAINT [FK_DivisionalTransaction_RcmpDivision]
FOREIGN KEY([ToDivisionID]) REFERENCES [dbo].[RcmpDivision] ([ID])
ALTER TABLE [dbo].[DivisionalTransaction] CHECK CONSTRAINT [FK_DivisionalTransaction_RcmpDivision]
ALTER TABLE [dbo].[DivisionalTransaction]
WITH CHECK ADD CONSTRAINT [FK_DivisionalTransaction_RcmpDivision1]
FOREIGN KEY([FromDivisionID]) REFERENCES [dbo].[RcmpDivision] ([ID])
ALTER TABLE [dbo].[DivisionalTransaction] CHECK CONSTRAINT [FK_DivisionalTransaction_RcmpDivision1]
INSERT INTO [dbo].[RcmpDivision]
([DivisionName],
[IsContractDivision])
VALUES
('B',0),('C',1),('D',0),('E',0),('F',0),('G',0),('H',0),('J',0),('K',0),
('L',0),('M',0),('National',1),('NHQ',1),('O',1),('T',1),('V',0)
INSERT INTO [dbo].[DivisionalTransaction]
([FiscalYearID]
,[ToDivisionID]
,[FromDivisionID]
,[IsRmCredit])
VALUES
(1,7,14,1),(1,4,14,1),(1,9,14,1),(1,7,14,1),(1,4,14,0),(1,7,12,1),(1,9,14,1),(1,3,4,0),
(1,3,4,0),(1,4,14,1),(1,3,1,0),(1,3,12,0),(1,9,2,0),(1,7,2,1),(1,5,15,1),(1,9,16,0),
(1,5,2,1),(1,10,13,1),(1,5,8,0),(1,5,13,1),(1,9,4,0),(1,1,2,1),(1,1,12,1),(1,1,12,1),
(1,1,12,1),(1,1,15,1),(1,1,15,1)
を行くために良いことがありますあなたのアプリケーションコードの中で目的の結果を得るために – GurV