1
CREATE VIEW PortfolioSelection
2
AS
3
SELECT DISTINCT pgo.GroupingId, (SELECT
4
(SELECT Id [@id], TradeType,
5
(SELECT
6
ti.EnvelopeCounterParty CounterParty, ti.EnvelopeNettingSetId NettingSetId,
7
(SELECT taf.AddFieldsAdditionalId AdditionalId
8
FROM PortfolioTrades taf WHERE taf.id = t.id
9
FOR XML PATH (''), TYPE) AdditionalFields
10
FROM PortfolioTrades ti WHERE ti.id = t.id
11
FOR XML PATH (''), TYPE) Envelope,
12
(SELECT
13
ta.Type, ta.Owner,
14
(SELECT
15
(SELECT
16
s.StartDate, s.EndDate, s.Tenor, s.Calendar, s.Convention, s.TermConvention, s.RuleName [Rule], ISNULL(s.EndOfMonth,'') EndOfMonth, ISNULL(convert(varchar,s.FirstDate,112),'') FirstDate, ISNULL(convert(varchar,s.LastDate,112),'') LastDate
17
FROM PortfolioScheduleDataRules s WHERE s.TradeActionId = ta.Id
18
FOR XML PATH (''), TYPE) Rules,
19
(SELECT s.ScheduleDate [Date]
20
FROM PortfolioScheduleDataDates s WHERE s.TradeActionId = ta.Id
21
FOR XML PATH (''), TYPE) Dates
22
FOR XML PATH (''), TYPE) Schedule
23
FROM PortfolioTradeActions ta WHERE ta.TradeId = t.id
24
FOR XML PATH ('TradeAction'), TYPE) TradeActions,
25
(SELECT
26
(SELECT
27
ld.LegType, ld.Payer, ld.Currency, ld.DayCounter, ld.PaymentConvention,
28
CASE WHEN ld.LegType <> 'Cashflow' THEN
29
(SELECT
30
(SELECT ln.startDate [@startDate], ln.Notional [data()]
31
FROM PortfolioLegNotionals ln WHERE ln.LegDataId =ld.Id ORDER by SeqId
32
FOR XML PATH ('Notional'), TYPE),
33
CASE WHEN (SELECT COUNT(li.FXresetForeignCurrency) FROM PortfolioLegData li WHERE li.Id =ld.Id) > 0 THEN (SELECT li.FXresetForeignCurrency ForeignCurrency, li.FXresetForeignAmount ForeignAmount, li.FXresetFXIndex FXIndex, li.FXresetFixingDays FixingDays
34
FROM PortfolioLegData li WHERE li.Id =ld.Id
35
FOR XML PATH ('FXReset'), TYPE) ELSE '' END,
36
(SELECT li.NotionalInitialExchange InitialExchange, li.NotionalAmortizingExchange AmortizingExchange, li.NotionalFinalExchange FinalExchange
37
FROM PortfolioLegData li WHERE li.Id =ld.Id
38
FOR XML PATH (''), TYPE) Exchanges
39
FOR XML PATH (''), TYPE) END Notionals,
40
CASE WHEN ld.LegType <> 'Cashflow' THEN
41
(SELECT
42
(SELECT s.StartDate, s.EndDate, s.Tenor, s.Calendar, s.Convention, s.TermConvention, s.RuleName [Rule], ISNULL(s.EndOfMonth,'') EndOfMonth, ISNULL(convert(varchar,s.FirstDate,112),'') FirstDate, ISNULL(convert(varchar,s.LastDate,112),'') LastDate
43
FROM PortfolioScheduleDataRules s WHERE s.LegDataId = ld.Id
44
FOR XML PATH (''), TYPE) Rules,
45
(SELECT s.ScheduleDate [Date]
46
FROM PortfolioScheduleDataDates s WHERE s.LegDataId = ld.Id
47
FOR XML PATH (''), TYPE) Dates
48
FOR XML PATH (''), TYPE) END ScheduleData,
49
CASE WHEN ld.LegType = 'Fixed' THEN
50
(SELECT
51
(SELECT r.StartDate [@startDate], r.Rate [data()]
52
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
53
FOR XML PATH ('Rate'), TYPE) Rates
54
FOR XML PATH (''), TYPE) END FixedLegData,
55
CASE WHEN ld.LegType = 'Floating' THEN
56
(SELECT
57
li.FloatingLegFixingDays FixingDays, li.FloatingLegIndexName [Index], li.FloatingLegIsInArrears IsInArrears, li.FloatingLegIsNotResettingXCCY IsNotResettingXCCY,
58
(SELECT r.StartDate [@startDate], r.Spread [data()]
59
FROM PortfolioFloatingLegSpreads r WHERE r.LegDataId = ld.Id ORDER by SeqId
60
FOR XML PATH ('Spread'), TYPE) Spreads,
61
(SELECT r.StartDate [@startDate], r.Cap [data()]
62
FROM PortfolioFloatingLegCaps r WHERE r.LegDataId = ld.Id ORDER by SeqId
63
FOR XML PATH ('Cap'), TYPE) Caps,
64
(SELECT r.StartDate [@startDate], r.[Floor] [data()]
65
FROM PortfolioFloatingLegFloors r WHERE r.LegDataId = ld.Id ORDER by SeqId
66
FOR XML PATH ('Floor'), TYPE) Floors,
67
(SELECT r.StartDate [@startDate], r.Gearing [data()]
68
FROM PortfolioFloatingLegGearings r WHERE r.LegDataId = ld.Id ORDER by SeqId
69
FOR XML PATH ('Gearing'), TYPE) Gearings
70
FROM PortfolioLegData li WHERE li.Id = ld.Id
71
FOR XML PATH (''), TYPE) END FloatingLegData,
72
CASE WHEN ld.LegType = 'Cashflow' THEN
73
(SELECT
74
(SELECT c.StartDate [@Date], c.Amount [data()]
75
FROM PortfolioCashflowDataCashflow c WHERE c.LegDataId = ld.Id ORDER by SeqId
76
FOR XML PATH ('Amount'), TYPE) Cashflow
77
FOR XML PATH (''), TYPE) END CashflowData,
78
CASE WHEN ld.LegType = 'CPI' THEN
79
(SELECT
80
li.CPILegIndexName [Index],
81
(SELECT r.StartDate [@startDate], r.Rate [data()]
82
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
83
FOR XML PATH ('Rate'), TYPE) Rates,
84
li.CPILegBaseCPI BaseCPI, li.CPILegObservationLag ObservationLag, li.CPILegInterpolated Interpolated
85
FROM PortfolioLegData li WHERE li.Id = ld.Id
86
FOR XML PATH (''), TYPE) END CPILegData,
87
CASE WHEN ld.LegType = 'YY' THEN
88
(SELECT
89
li.YYLegIndexName [Index], li.YYLegFixingDays FixingDays, li.YYLegObservationLag ObservationLag, li.YYLegInterpolated Interpolated,
90
(SELECT r.StartDate [@startDate], r.Rate [data()]
91
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
92
FOR XML PATH ('Rate'), TYPE) Rates
93
FROM PortfolioLegData li WHERE li.Id = ld.Id
94
FOR XML PATH (''), TYPE) END YYLegData
95
FROM PortfolioLegData ld WHERE ld.TradeId = t.id
96
FOR XML PATH ('LegData'), TYPE)
97
FOR XML PATH ('SwapData'), TYPE),
98
(SELECT
99
(SELECT sd.OptionDataLongShort LongShort, sd.OptionDataOptionType OptionType, sd.OptionDataStyle Style, sd.OptionDataSettlement Settlement, sd.OptionDataPayOffAtExpiry PayOffAtExpiry,
100
(SELECT sd.OptionDataPremiumAmount Amount, sd.OptionDataPremiumCurrency Currency, sd.OptionDataPremiumPayDate [Date]
101
FOR XML PATH (''), TYPE) Premium,
102
(SELECT ed.ExerciseDate
103
FROM PortfolioOptionExercises ed WHERE ed.TradeId = t.id
104
FOR XML PATH (''), TYPE) ExerciseDates,
105
(SELECT ed.ExerciseFee
106
FROM PortfolioOptionExercises ed WHERE ed.TradeId = t.id
107
FOR XML PATH (''), TYPE) ExerciseFees,
108
(SELECT ed.ExercisePrice
109
FROM PortfolioOptionExercises ed WHERE ed.TradeId = t.id
110
FOR XML PATH (''), TYPE) ExercisePrices
111
FOR XML PATH (''), TYPE) OptionData,
112
(SELECT
113
ld.LegType, ld.Payer, ld.Currency, ld.DayCounter, ld.PaymentConvention,
114
(SELECT
115
(SELECT ln.startDate [@startDate], ln.Notional [data()]
116
FROM PortfolioLegNotionals ln WHERE ln.LegDataId =ld.Id
117
FOR XML PATH ('Notional'), TYPE),
118
CASE WHEN (SELECT COUNT(li.FXresetForeignCurrency) FROM PortfolioLegData li WHERE li.Id =ld.Id) > 0 THEN (SELECT li.FXresetForeignCurrency ForeignCurrency, li.FXresetForeignAmount ForeignAmount, li.FXresetFXIndex FXIndex, li.FXresetFixingDays FixingDays
119
FROM PortfolioLegData li WHERE li.Id =ld.Id
120
FOR XML PATH ('FXReset'), TYPE) ELSE '' END,
121
(SELECT li.NotionalInitialExchange InitialExchange, li.NotionalAmortizingExchange AmortizingExchange, li.NotionalFinalExchange FinalExchange
122
FROM PortfolioLegData li WHERE li.Id =ld.Id
123
FOR XML PATH (''), TYPE) Exchanges
124
FOR XML PATH (''), TYPE) Notionals,
125
(SELECT
126
(SELECT s.StartDate, s.EndDate, s.Tenor, s.Calendar, s.Convention, s.TermConvention, s.RuleName [Rule], ISNULL(s.EndOfMonth,'') EndOfMonth, ISNULL(convert(varchar,s.FirstDate,112),'') FirstDate, ISNULL(convert(varchar,s.LastDate,112),'') LastDate
127
FROM PortfolioScheduleDataRules s WHERE s.LegDataId = ld.Id
128
FOR XML PATH (''), TYPE) Rules,
129
(SELECT s.ScheduleDate [Date]
130
FROM PortfolioScheduleDataDates s WHERE s.LegDataId = ld.Id
131
FOR XML PATH (''), TYPE) Dates
132
FOR XML PATH (''), TYPE) ScheduleData,
133
CASE WHEN ld.LegType = 'Fixed' THEN
134
(SELECT
135
(SELECT r.StartDate [@startDate], r.Rate [data()]
136
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
137
FOR XML PATH ('Rate'), TYPE) Rates
138
FOR XML PATH (''), TYPE) END FixedLegData,
139
CASE WHEN ld.LegType = 'Floating' THEN
140
(SELECT
141
li.FloatingLegFixingDays FixingDays, li.FloatingLegIndexName [Index], li.FloatingLegIsInArrears IsInArrears, li.FloatingLegIsNotResettingXCCY IsNotResettingXCCY,
142
(SELECT r.StartDate [@startDate], r.Spread [data()]
143
FROM PortfolioFloatingLegSpreads r WHERE r.LegDataId = ld.Id ORDER by SeqId
144
FOR XML PATH ('Spread'), TYPE) Spreads,
145
(SELECT r.StartDate [@startDate], r.Cap [data()]
146
FROM PortfolioFloatingLegCaps r WHERE r.LegDataId = ld.Id ORDER by SeqId
147
FOR XML PATH ('Cap'), TYPE) Caps,
148
(SELECT r.StartDate [@startDate], r.[Floor] [data()]
149
FROM PortfolioFloatingLegFloors r WHERE r.LegDataId = ld.Id ORDER by SeqId
150
FOR XML PATH ('Floor'), TYPE) Floors,
151
(SELECT r.StartDate [@startDate], r.Gearing [data()]
152
FROM PortfolioFloatingLegGearings r WHERE r.LegDataId = ld.Id ORDER by SeqId
153
FOR XML PATH ('Gearing'), TYPE) Gearings
154
FROM PortfolioLegData li WHERE li.Id = ld.Id
155
FOR XML PATH (''), TYPE) END FloatingLegData,
156
CASE WHEN ld.LegType = 'CPI' THEN
157
(SELECT
158
li.CPILegIndexName [Index],
159
(SELECT r.StartDate [@startDate], r.Rate [data()]
160
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
161
FOR XML PATH ('Rate'), TYPE) Rates,
162
li.CPILegBaseCPI BaseCPI, li.CPILegObservationLag ObservationLag, li.CPILegInterpolated Interpolated
163
FROM PortfolioLegData li WHERE li.Id = ld.Id
164
FOR XML PATH (''), TYPE) END CPILegData,
165
CASE WHEN ld.LegType = 'YY' THEN
166
(SELECT
167
li.YYLegIndexName [Index], li.YYLegFixingDays FixingDays, li.YYLegObservationLag ObservationLag, li.YYLegInterpolated Interpolated,
168
(SELECT r.StartDate [@startDate], r.Rate [data()]
169
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
170
FOR XML PATH ('Rate'), TYPE) Rates
171
FROM PortfolioLegData li WHERE li.Id = ld.Id
172
FOR XML PATH (''), TYPE) END YYLegData
173
FROM PortfolioLegData ld WHERE ld.TradeId = t.id
174
FOR XML PATH ('LegData'), TYPE)
175
FROM PortfolioSwaptionData sd WHERE sd.TradeId = t.id
176
FOR XML PATH (''), TYPE) SwaptionData,
177
(SELECT fd.ValueDate, fd.BoughtCurrency, fd.BoughtAmount, fd.SoldCurrency, fd.SoldAmount
178
FROM PortfolioFxForwardData fd WHERE fd.TradeId = t.id
179
FOR XML PATH (''), TYPE) FxForwardData,
180
(SELECT
181
(SELECT fo.OptionDataLongShort LongShort, fo.OptionDataOptionType OptionType, fo.OptionDataStyle Style, fo.OptionDataSettlement Settlement, fo.OptionDataPayOffAtExpiry PayOffAtExpiry,
182
(SELECT fo.OptionDataPremiumAmount Amount, fo.OptionDataPremiumCurrency Currency, fo.OptionDataPremiumPayDate [Date]
183
FOR XML PATH (''), TYPE) Premium,
184
(SELECT ed.ExerciseDate
185
FROM PortfolioOptionExercises ed WHERE ed.TradeId = t.id
186
FOR XML PATH (''), TYPE) ExerciseDates,
187
(SELECT ed.ExerciseFee
188
FROM PortfolioOptionExercises ed WHERE ed.TradeId = t.id
189
FOR XML PATH (''), TYPE) ExerciseFees,
190
(SELECT ed.ExercisePrice
191
FROM PortfolioOptionExercises ed WHERE ed.TradeId = t.id
192
FOR XML PATH (''), TYPE) ExercisePrices
193
FOR XML PATH (''), TYPE) OptionData,
194
fo.BoughtCurrency, fo.BoughtAmount, fo.SoldCurrency, fo.SoldAmount
195
FROM PortfolioFxOptionData fo WHERE fo.TradeId = t.id
196
FOR XML PATH (''), TYPE) FxOptionData,
197
(SELECT
198
cfd.LongShort,
199
(SELECT
200
ld.LegType, ld.Payer, ld.Currency, ld.DayCounter, ld.PaymentConvention,
201
(SELECT
202
(SELECT ln.startDate [@startDate], ln.Notional [data()]
203
FROM PortfolioLegNotionals ln WHERE ln.LegDataId =ld.Id
204
FOR XML PATH ('Notional'), TYPE)
205
FOR XML PATH (''), TYPE) Notionals,
206
(SELECT
207
(SELECT s.StartDate, s.EndDate, s.Tenor, s.Calendar, s.Convention, s.TermConvention, s.RuleName [Rule], ISNULL(s.EndOfMonth,'') EndOfMonth, ISNULL(convert(varchar,s.FirstDate,112),'') FirstDate, ISNULL(convert(varchar,s.LastDate,112),'') LastDate
208
FROM PortfolioScheduleDataRules s WHERE s.LegDataId = ld.Id
209
FOR XML PATH (''), TYPE) Rules,
210
(SELECT s.ScheduleDate [Date]
211
FROM PortfolioScheduleDataDates s WHERE s.LegDataId = ld.Id
212
FOR XML PATH (''), TYPE) Dates
213
FOR XML PATH (''), TYPE) ScheduleData,
214
CASE WHEN ld.LegType = 'Fixed' THEN
215
(SELECT
216
(SELECT r.StartDate [@startDate], r.Rate [data()]
217
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
218
FOR XML PATH ('Rate'), TYPE) Rates
219
FOR XML PATH (''), TYPE) END FixedLegData,
220
CASE WHEN ld.LegType = 'Floating' THEN
221
(SELECT
222
li.FloatingLegFixingDays FixingDays, li.FloatingLegIndexName [Index], li.FloatingLegIsInArrears IsInArrears, li.FloatingLegIsNotResettingXCCY IsNotResettingXCCY,
223
(SELECT r.StartDate [@startDate], r.Spread [data()]
224
FROM PortfolioFloatingLegSpreads r WHERE r.LegDataId = ld.Id ORDER by SeqId
225
FOR XML PATH ('Spread'), TYPE) Spreads,
226
(SELECT r.StartDate [@startDate], r.Cap [data()]
227
FROM PortfolioFloatingLegCaps r WHERE r.LegDataId = ld.Id ORDER by SeqId
228
FOR XML PATH ('Cap'), TYPE) Caps,
229
(SELECT r.StartDate [@startDate], r.[Floor] [data()]
230
FROM PortfolioFloatingLegFloors r WHERE r.LegDataId = ld.Id ORDER by SeqId
231
FOR XML PATH ('Floor'), TYPE) Floors,
232
(SELECT r.StartDate [@startDate], r.Gearing [data()]
233
FROM PortfolioFloatingLegGearings r WHERE r.LegDataId = ld.Id ORDER by SeqId
234
FOR XML PATH ('Gearing'), TYPE) Gearings
235
FROM PortfolioLegData li WHERE li.Id = ld.Id
236
FOR XML PATH (''), TYPE) END FloatingLegData,
237
CASE WHEN ld.LegType = 'CPI' THEN
238
(SELECT
239
li.CPILegIndexName [Index],
240
(SELECT r.StartDate [@startDate], r.Rate [data()]
241
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
242
FOR XML PATH ('Rate'), TYPE) Rates,
243
li.CPILegBaseCPI BaseCPI, li.CPILegObservationLag ObservationLag, li.CPILegInterpolated Interpolated
244
FROM PortfolioLegData li WHERE li.Id = ld.Id
245
FOR XML PATH (''), TYPE) END CPILegData,
246
CASE WHEN ld.LegType = 'YY' THEN
247
(SELECT
248
li.YYLegIndexName [Index], li.YYLegFixingDays FixingDays, li.YYLegObservationLag ObservationLag, li.YYLegInterpolated Interpolated,
249
(SELECT r.StartDate [@startDate], r.Rate [data()]
250
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
251
FOR XML PATH ('Rate'), TYPE) Rates
252
FROM PortfolioLegData li WHERE li.Id = ld.Id
253
FOR XML PATH (''), TYPE) END YYLegData
254
FROM PortfolioLegData ld WHERE ld.TradeId = t.id
255
FOR XML PATH ('LegData'), TYPE),
256
(SELECT r.Rate
257
FROM PortfolioCapRates r WHERE r.TradeId = t.Id ORDER by SeqId
258
FOR XML PATH (''), TYPE) CapRates,
259
(SELECT r.Rate
260
FROM PortfolioFloorRates r WHERE r.TradeId = t.Id ORDER by SeqId
261
FOR XML PATH (''), TYPE) FloorRates
262
FROM PortfolioCapFloorData cfd WHERE cfd.TradeId = t.id
263
FOR XML PATH (''), TYPE) CapFloorData,
264
(SELECT
265
(SELECT eo.OptionDataLongShort LongShort, eo.OptionDataOptionType OptionType, eo.OptionDataStyle Style, eo.OptionDataSettlement Settlement, eo.OptionDataPayOffAtExpiry PayOffAtExpiry,
266
(SELECT eo.OptionDataPremiumAmount Amount, eo.OptionDataPremiumCurrency Currency, eo.OptionDataPremiumPayDate [Date]
267
FOR XML PATH (''), TYPE) Premium,
268
(SELECT ed.ExerciseDate
269
FROM PortfolioOptionExercises ed WHERE ed.TradeId = t.id
270
FOR XML PATH (''), TYPE) ExerciseDates,
271
(SELECT ed.ExerciseFee
272
FROM PortfolioOptionExercises ed WHERE ed.TradeId = t.id
273
FOR XML PATH (''), TYPE) ExerciseFees,
274
(SELECT ed.ExercisePrice
275
FROM PortfolioOptionExercises ed WHERE ed.TradeId = t.id
276
FOR XML PATH (''), TYPE) ExercisePrices
277
FOR XML PATH (''), TYPE) OptionData,
278
eo.Name, eo.Currency, eo.Strike, eo.Quantity
279
FROM PortfolioEquityOptionData eo WHERE eo.TradeId = t.id
280
FOR XML PATH (''), TYPE) EquityOptionData,
281
(SELECT ed.LongShort, ed.Maturity, ed.Name, ed.Currency, ed.Strike, ed.Quantity
282
FROM PortfolioEquityForwardData ed WHERE ed.TradeId = t.id
283
FOR XML PATH (''), TYPE) EquityForwardData,
284
(SELECT b.IssuerId, b.CreditCurveId, b.SecurityId, b.ReferenceCurveId, b.SettlementDays, b.Calendar, b.IssueDate,
285
(SELECT
286
ld.LegType, ld.Payer, ld.Currency, ld.DayCounter, ld.PaymentConvention,
287
(SELECT
288
(SELECT ln.startDate [@startDate], ln.Notional [data()]
289
FROM PortfolioLegNotionals ln WHERE ln.LegDataId =ld.Id
290
FOR XML PATH ('Notional'), TYPE),
291
CASE WHEN (SELECT COUNT(li.FXresetForeignCurrency) FROM PortfolioLegData li WHERE li.Id =ld.Id) > 0 THEN (SELECT li.FXresetForeignCurrency ForeignCurrency, li.FXresetForeignAmount ForeignAmount, li.FXresetFXIndex FXIndex, li.FXresetFixingDays FixingDays
292
FROM PortfolioLegData li WHERE li.Id =ld.Id
293
FOR XML PATH ('FXReset'), TYPE) ELSE '' END,
294
(SELECT li.NotionalInitialExchange InitialExchange, li.NotionalAmortizingExchange AmortizingExchange, li.NotionalFinalExchange FinalExchange
295
FROM PortfolioLegData li WHERE li.Id =ld.Id
296
FOR XML PATH (''), TYPE) Exchanges
297
FOR XML PATH (''), TYPE) Notionals,
298
(SELECT
299
(SELECT s.StartDate, s.EndDate, s.Tenor, s.Calendar, s.Convention, s.TermConvention, s.RuleName [Rule], ISNULL(s.EndOfMonth,'') EndOfMonth, ISNULL(convert(varchar,s.FirstDate,112),'') FirstDate, ISNULL(convert(varchar,s.LastDate,112),'') LastDate
300
FROM PortfolioScheduleDataRules s WHERE s.LegDataId = ld.Id
301
FOR XML PATH (''), TYPE) Rules,
302
(SELECT s.ScheduleDate [Date]
303
FROM PortfolioScheduleDataDates s WHERE s.LegDataId = ld.Id
304
FOR XML PATH (''), TYPE) Dates
305
FOR XML PATH (''), TYPE) ScheduleData,
306
CASE WHEN ld.LegType = 'Fixed' THEN
307
(SELECT
308
(SELECT r.StartDate [@startDate], r.Rate [data()]
309
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
310
FOR XML PATH ('Rate'), TYPE) Rates
311
FOR XML PATH (''), TYPE) END FixedLegData,
312
CASE WHEN ld.LegType = 'Floating' THEN
313
(SELECT
314
li.FloatingLegFixingDays FixingDays, li.FloatingLegIndexName [Index], li.FloatingLegIsInArrears IsInArrears, li.FloatingLegIsNotResettingXCCY IsNotResettingXCCY,
315
(SELECT r.StartDate [@startDate], r.Spread [data()]
316
FROM PortfolioFloatingLegSpreads r WHERE r.LegDataId = ld.Id ORDER by SeqId
317
FOR XML PATH ('Spread'), TYPE) Spreads,
318
(SELECT r.StartDate [@startDate], r.Cap [data()]
319
FROM PortfolioFloatingLegCaps r WHERE r.LegDataId = ld.Id ORDER by SeqId
320
FOR XML PATH ('Cap'), TYPE) Caps,
321
(SELECT r.StartDate [@startDate], r.[Floor] [data()]
322
FROM PortfolioFloatingLegFloors r WHERE r.LegDataId = ld.Id ORDER by SeqId
323
FOR XML PATH ('Floor'), TYPE) Floors,
324
(SELECT r.StartDate [@startDate], r.Gearing [data()]
325
FROM PortfolioFloatingLegGearings r WHERE r.LegDataId = ld.Id ORDER by SeqId
326
FOR XML PATH ('Gearing'), TYPE) Gearings
327
FROM PortfolioLegData li WHERE li.Id = ld.Id
328
FOR XML PATH (''), TYPE) END FloatingLegData,
329
CASE WHEN ld.LegType = 'CPI' THEN
330
(SELECT
331
li.CPILegIndexName [Index],
332
(SELECT r.StartDate [@startDate], r.Rate [data()]
333
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
334
FOR XML PATH ('Rate'), TYPE) Rates,
335
li.CPILegBaseCPI BaseCPI, li.CPILegObservationLag ObservationLag, li.CPILegInterpolated Interpolated
336
FROM PortfolioLegData li WHERE li.Id = ld.Id
337
FOR XML PATH (''), TYPE) END CPILegData,
338
CASE WHEN ld.LegType = 'YY' THEN
339
(SELECT
340
li.YYLegIndexName [Index], li.YYLegFixingDays FixingDays, li.YYLegObservationLag ObservationLag, li.YYLegInterpolated Interpolated,
341
(SELECT r.StartDate [@startDate], r.Rate [data()]
342
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
343
FOR XML PATH ('Rate'), TYPE) Rates
344
FROM PortfolioLegData li WHERE li.Id = ld.Id
345
FOR XML PATH (''), TYPE) END YYLegData
346
FROM PortfolioLegData ld WHERE ld.TradeId = t.id
347
FOR XML PATH ('LegData'), TYPE)
348
FROM PortfolioBondData b WHERE b.TradeId = t.id
349
FOR XML PATH (''), TYPE) BondData,
350
(SELECT cd.IssuerId, cd.CreditCurveId, cd.SettlesAccrual, cd.PaysAtDefaultTime, cd.ProtectionStart, cd.UpfrontDate, cd.UpfrontFee,
351
(SELECT
352
ld.LegType, ld.Payer, ld.Currency, ld.DayCounter, ld.PaymentConvention,
353
(SELECT
354
(SELECT ln.startDate [@startDate], ln.Notional [data()]
355
FROM PortfolioLegNotionals ln WHERE ln.LegDataId =ld.Id
356
FOR XML PATH ('Notional'), TYPE),
357
CASE WHEN (SELECT COUNT(li.FXresetForeignCurrency) FROM PortfolioLegData li WHERE li.Id =ld.Id) > 0 THEN (SELECT li.FXresetForeignCurrency ForeignCurrency, li.FXresetForeignAmount ForeignAmount, li.FXresetFXIndex FXIndex, li.FXresetFixingDays FixingDays
358
FROM PortfolioLegData li WHERE li.Id =ld.Id
359
FOR XML PATH ('FXReset'), TYPE) ELSE '' END,
360
(SELECT li.NotionalInitialExchange InitialExchange, li.NotionalAmortizingExchange AmortizingExchange, li.NotionalFinalExchange FinalExchange
361
FROM PortfolioLegData li WHERE li.Id =ld.Id
362
FOR XML PATH (''), TYPE) Exchanges
363
FOR XML PATH (''), TYPE) Notionals,
364
(SELECT
365
(SELECT s.StartDate, s.EndDate, s.Tenor, s.Calendar, s.Convention, s.TermConvention, s.RuleName [Rule], ISNULL(s.EndOfMonth,'') EndOfMonth, ISNULL(convert(varchar,s.FirstDate,112),'') FirstDate, ISNULL(convert(varchar,s.LastDate,112),'') LastDate
366
FROM PortfolioScheduleDataRules s WHERE s.LegDataId = ld.Id
367
FOR XML PATH (''), TYPE) Rules,
368
(SELECT s.ScheduleDate [Date]
369
FROM PortfolioScheduleDataDates s WHERE s.LegDataId = ld.Id
370
FOR XML PATH (''), TYPE) Dates
371
FOR XML PATH (''), TYPE) ScheduleData,
372
CASE WHEN ld.LegType = 'Fixed' THEN
373
(SELECT
374
(SELECT r.StartDate [@startDate], r.Rate [data()]
375
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
376
FOR XML PATH ('Rate'), TYPE) Rates
377
FOR XML PATH (''), TYPE) END FixedLegData,
378
CASE WHEN ld.LegType = 'Floating' THEN
379
(SELECT
380
li.FloatingLegFixingDays FixingDays, li.FloatingLegIndexName [Index], li.FloatingLegIsInArrears IsInArrears, li.FloatingLegIsNotResettingXCCY IsNotResettingXCCY,
381
(SELECT r.StartDate [@startDate], r.Spread [data()]
382
FROM PortfolioFloatingLegSpreads r WHERE r.LegDataId = ld.Id ORDER by SeqId
383
FOR XML PATH ('Spread'), TYPE) Spreads,
384
(SELECT r.StartDate [@startDate], r.Cap [data()]
385
FROM PortfolioFloatingLegCaps r WHERE r.LegDataId = ld.Id ORDER by SeqId
386
FOR XML PATH ('Cap'), TYPE) Caps,
387
(SELECT r.StartDate [@startDate], r.[Floor] [data()]
388
FROM PortfolioFloatingLegFloors r WHERE r.LegDataId = ld.Id ORDER by SeqId
389
FOR XML PATH ('Floor'), TYPE) Floors,
390
(SELECT r.StartDate [@startDate], r.Gearing [data()]
391
FROM PortfolioFloatingLegGearings r WHERE r.LegDataId = ld.Id ORDER by SeqId
392
FOR XML PATH ('Gearing'), TYPE) Gearings
393
FROM PortfolioLegData li WHERE li.Id = ld.Id
394
FOR XML PATH (''), TYPE) END FloatingLegData,
395
CASE WHEN ld.LegType = 'CPI' THEN
396
(SELECT
397
li.CPILegIndexName [Index],
398
(SELECT r.StartDate [@startDate], r.Rate [data()]
399
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
400
FOR XML PATH ('Rate'), TYPE) Rates,
401
li.CPILegBaseCPI BaseCPI, li.CPILegObservationLag ObservationLag, li.CPILegInterpolated Interpolated
402
FROM PortfolioLegData li WHERE li.Id = ld.Id
403
FOR XML PATH (''), TYPE) END CPILegData,
404
CASE WHEN ld.LegType = 'YY' THEN
405
(SELECT
406
li.YYLegIndexName [Index], li.YYLegFixingDays FixingDays, li.YYLegObservationLag ObservationLag, li.YYLegInterpolated Interpolated,
407
(SELECT r.StartDate [@startDate], r.Rate [data()]
408
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
409
FOR XML PATH ('Rate'), TYPE) Rates
410
FROM PortfolioLegData li WHERE li.Id = ld.Id
411
FOR XML PATH (''), TYPE) END YYLegData
412
FROM PortfolioLegData ld WHERE ld.TradeId = t.id
413
FOR XML PATH ('LegData'), TYPE)
414
FROM PortfolioCreditDefaultSwapData cd WHERE cd.TradeId = t.id
415
FOR XML PATH (''), TYPE) CreditDefaultSwapData,
416
(SELECT id.CreditCurveId, id.SettlesAccrual, id.PaysAtDefaultTime, id.ProtectionStart, id.UpfrontDate, id.UpfrontFee,
417
(SELECT
418
ld.LegType, ld.Payer, ld.Currency, ld.DayCounter, ld.PaymentConvention,
419
(SELECT
420
(SELECT ln.startDate [@startDate], ln.Notional [data()]
421
FROM PortfolioLegNotionals ln WHERE ln.LegDataId =ld.Id
422
FOR XML PATH ('Notional'), TYPE),
423
CASE WHEN (SELECT COUNT(li.FXresetForeignCurrency) FROM PortfolioLegData li WHERE li.Id =ld.Id) > 0 THEN (SELECT li.FXresetForeignCurrency ForeignCurrency, li.FXresetForeignAmount ForeignAmount, li.FXresetFXIndex FXIndex, li.FXresetFixingDays FixingDays
424
FROM PortfolioLegData li WHERE li.Id =ld.Id
425
FOR XML PATH ('FXReset'), TYPE) ELSE '' END,
426
(SELECT li.NotionalInitialExchange InitialExchange, li.NotionalAmortizingExchange AmortizingExchange, li.NotionalFinalExchange FinalExchange
427
FROM PortfolioLegData li WHERE li.Id =ld.Id
428
FOR XML PATH (''), TYPE) Exchanges
429
FOR XML PATH (''), TYPE) Notionals,
430
(SELECT
431
(SELECT s.StartDate, s.EndDate, s.Tenor, s.Calendar, s.Convention, s.TermConvention, s.RuleName [Rule], ISNULL(s.EndOfMonth,'') EndOfMonth, ISNULL(convert(varchar,s.FirstDate,112),'') FirstDate, ISNULL(convert(varchar,s.LastDate,112),'') LastDate
432
FROM PortfolioScheduleDataRules s WHERE s.LegDataId = ld.Id
433
FOR XML PATH (''), TYPE) Rules,
434
(SELECT s.ScheduleDate [Date]
435
FROM PortfolioScheduleDataDates s WHERE s.LegDataId = ld.Id
436
FOR XML PATH (''), TYPE) Dates
437
FOR XML PATH (''), TYPE) ScheduleData,
438
CASE WHEN ld.LegType = 'Fixed' THEN
439
(SELECT
440
(SELECT r.StartDate [@startDate], r.Rate [data()]
441
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
442
FOR XML PATH ('Rate'), TYPE) Rates
443
FOR XML PATH (''), TYPE) END FixedLegData,
444
CASE WHEN ld.LegType = 'Floating' THEN
445
(SELECT
446
li.FloatingLegFixingDays FixingDays, li.FloatingLegIndexName [Index], li.FloatingLegIsInArrears IsInArrears, li.FloatingLegIsNotResettingXCCY IsNotResettingXCCY,
447
(SELECT r.StartDate [@startDate], r.Spread [data()]
448
FROM PortfolioFloatingLegSpreads r WHERE r.LegDataId = ld.Id ORDER by SeqId
449
FOR XML PATH ('Spread'), TYPE) Spreads,
450
(SELECT r.StartDate [@startDate], r.Cap [data()]
451
FROM PortfolioFloatingLegCaps r WHERE r.LegDataId = ld.Id ORDER by SeqId
452
FOR XML PATH ('Cap'), TYPE) Caps,
453
(SELECT r.StartDate [@startDate], r.[Floor] [data()]
454
FROM PortfolioFloatingLegFloors r WHERE r.LegDataId = ld.Id ORDER by SeqId
455
FOR XML PATH ('Floor'), TYPE) Floors,
456
(SELECT r.StartDate [@startDate], r.Gearing [data()]
457
FROM PortfolioFloatingLegGearings r WHERE r.LegDataId = ld.Id ORDER by SeqId
458
FOR XML PATH ('Gearing'), TYPE) Gearings
459
FROM PortfolioLegData li WHERE li.Id = ld.Id
460
FOR XML PATH (''), TYPE) END FloatingLegData,
461
CASE WHEN ld.LegType = 'CPI' THEN
462
(SELECT
463
li.CPILegIndexName [Index],
464
(SELECT r.StartDate [@startDate], r.Rate [data()]
465
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
466
FOR XML PATH ('Rate'), TYPE) Rates,
467
li.CPILegBaseCPI BaseCPI, li.CPILegObservationLag ObservationLag, li.CPILegInterpolated Interpolated
468
FROM PortfolioLegData li WHERE li.Id = ld.Id
469
FOR XML PATH (''), TYPE) END CPILegData,
470
CASE WHEN ld.LegType = 'YY' THEN
471
(SELECT
472
li.YYLegIndexName [Index], li.YYLegFixingDays FixingDays, li.YYLegObservationLag ObservationLag, li.YYLegInterpolated Interpolated,
473
(SELECT r.StartDate [@startDate], r.Rate [data()]
474
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
475
FOR XML PATH ('Rate'), TYPE) Rates
476
FROM PortfolioLegData li WHERE li.Id = ld.Id
477
FOR XML PATH (''), TYPE) END YYLegData
478
FROM PortfolioLegData ld WHERE ld.TradeId = t.id
479
FOR XML PATH ('LegData'), TYPE),
480
(SELECT ba.IssuerId, ba.CreditCurveId, ba.Notional, ba.Currency
481
FROM PortfolioBaskets ba WHERE ba.TradeId = t.id
482
FOR XML PATH ('Name'), TYPE) Basket
483
FROM PortfolioIndexCreditDefaultSwapData id WHERE id.TradeId = t.id
484
FOR XML PATH (''), TYPE) IndexCreditDefaultSwapData,
485
(SELECT iod.KnockOut,
486
(SELECT iod.OptionDataLongShort LongShort, iod.OptionDataOptionType OptionType, iod.OptionDataStyle Style, iod.OptionDataSettlement Settlement, iod.OptionDataPayOffAtExpiry PayOffAtExpiry,
487
(SELECT iod.OptionDataPremiumAmount Amount, iod.OptionDataPremiumCurrency Currency, iod.OptionDataPremiumPayDate [Date]
488
FOR XML PATH (''), TYPE) Premium,
489
(SELECT ed.ExerciseDate
490
FROM PortfolioOptionExercises ed WHERE ed.TradeId = t.id
491
FOR XML PATH (''), TYPE) ExerciseDates,
492
(SELECT ed.ExerciseFee
493
FROM PortfolioOptionExercises ed WHERE ed.TradeId = t.id
494
FOR XML PATH (''), TYPE) ExerciseFees,
495
(SELECT ed.ExercisePrice
496
FROM PortfolioOptionExercises ed WHERE ed.TradeId = t.id
497
FOR XML PATH (''), TYPE) ExercisePrices
498
FOR XML PATH (''), TYPE) OptionData,
499
(SELECT id.CreditCurveId, id.SettlesAccrual, id.PaysAtDefaultTime, id.ProtectionStart, id.UpfrontDate, id.UpfrontFee,
500
(SELECT
501
ld.LegType, ld.Payer, ld.Currency, ld.DayCounter, ld.PaymentConvention,
502
(SELECT
503
(SELECT ln.startDate [@startDate], ln.Notional [data()]
504
FROM PortfolioLegNotionals ln WHERE ln.LegDataId =ld.Id
505
FOR XML PATH ('Notional'), TYPE),
506
CASE WHEN (SELECT COUNT(li.FXresetForeignCurrency) FROM PortfolioLegData li WHERE li.Id =ld.Id) > 0 THEN (SELECT li.FXresetForeignCurrency ForeignCurrency, li.FXresetForeignAmount ForeignAmount, li.FXresetFXIndex FXIndex, li.FXresetFixingDays FixingDays
507
FROM PortfolioLegData li WHERE li.Id =ld.Id
508
FOR XML PATH ('FXReset'), TYPE) ELSE '' END,
509
(SELECT li.NotionalInitialExchange InitialExchange, li.NotionalAmortizingExchange AmortizingExchange, li.NotionalFinalExchange FinalExchange
510
FROM PortfolioLegData li WHERE li.Id =ld.Id
511
FOR XML PATH (''), TYPE) Exchanges
512
FOR XML PATH (''), TYPE) Notionals,
513
(SELECT
514
(SELECT s.StartDate, s.EndDate, s.Tenor, s.Calendar, s.Convention, s.TermConvention, s.RuleName [Rule], ISNULL(s.EndOfMonth,'') EndOfMonth, ISNULL(convert(varchar,s.FirstDate,112),'') FirstDate, ISNULL(convert(varchar,s.LastDate,112),'') LastDate
515
FROM PortfolioScheduleDataRules s WHERE s.LegDataId = ld.Id
516
FOR XML PATH (''), TYPE) Rules,
517
(SELECT s.ScheduleDate [Date]
518
FROM PortfolioScheduleDataDates s WHERE s.LegDataId = ld.Id
519
FOR XML PATH (''), TYPE) Dates
520
FOR XML PATH (''), TYPE) ScheduleData,
521
CASE WHEN ld.LegType = 'Fixed' THEN
522
(SELECT
523
(SELECT r.StartDate [@startDate], r.Rate [data()]
524
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
525
FOR XML PATH ('Rate'), TYPE) Rates
526
FOR XML PATH (''), TYPE) END FixedLegData,
527
CASE WHEN ld.LegType = 'Floating' THEN
528
(SELECT
529
li.FloatingLegFixingDays FixingDays, li.FloatingLegIndexName [Index], li.FloatingLegIsInArrears IsInArrears, li.FloatingLegIsNotResettingXCCY IsNotResettingXCCY,
530
(SELECT r.StartDate [@startDate], r.Spread [data()]
531
FROM PortfolioFloatingLegSpreads r WHERE r.LegDataId = ld.Id ORDER by SeqId
532
FOR XML PATH ('Spread'), TYPE) Spreads,
533
(SELECT r.StartDate [@startDate], r.Cap [data()]
534
FROM PortfolioFloatingLegCaps r WHERE r.LegDataId = ld.Id ORDER by SeqId
535
FOR XML PATH ('Cap'), TYPE) Caps,
536
(SELECT r.StartDate [@startDate], r.[Floor] [data()]
537
FROM PortfolioFloatingLegFloors r WHERE r.LegDataId = ld.Id ORDER by SeqId
538
FOR XML PATH ('Floor'), TYPE) Floors,
539
(SELECT r.StartDate [@startDate], r.Gearing [data()]
540
FROM PortfolioFloatingLegGearings r WHERE r.LegDataId = ld.Id ORDER by SeqId
541
FOR XML PATH ('Gearing'), TYPE) Gearings
542
FROM PortfolioLegData li WHERE li.Id = ld.Id
543
FOR XML PATH (''), TYPE) END FloatingLegData,
544
CASE WHEN ld.LegType = 'CPI' THEN
545
(SELECT
546
li.CPILegIndexName [Index],
547
(SELECT r.StartDate [@startDate], r.Rate [data()]
548
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
549
FOR XML PATH ('Rate'), TYPE) Rates,
550
li.CPILegBaseCPI BaseCPI, li.CPILegObservationLag ObservationLag, li.CPILegInterpolated Interpolated
551
FROM PortfolioLegData li WHERE li.Id = ld.Id
552
FOR XML PATH (''), TYPE) END CPILegData,
553
CASE WHEN ld.LegType = 'YY' THEN
554
(SELECT
555
li.YYLegIndexName [Index], li.YYLegFixingDays FixingDays, li.YYLegObservationLag ObservationLag, li.YYLegInterpolated Interpolated,
556
(SELECT r.StartDate [@startDate], r.Rate [data()]
557
FROM PortfolioFixedLegCPIRates r WHERE r.LegDataId = ld.Id ORDER by SeqId
558
FOR XML PATH ('Rate'), TYPE) Rates
559
FROM PortfolioLegData li WHERE li.Id = ld.Id
560
FOR XML PATH (''), TYPE) END YYLegData
561
FROM PortfolioLegData ld WHERE ld.TradeId = t.id
562
FOR XML PATH ('LegData'), TYPE),
563
(SELECT ba.IssuerId, ba.CreditCurveId, ba.Notional, ba.Currency
564
FROM PortfolioBaskets ba WHERE ba.TradeId = t.id ORDER by SeqId
565
FOR XML PATH ('Name'), TYPE) Basket
566
FROM PortfolioIndexCreditDefaultSwapOptionSwapData id WHERE id.TradeId = t.id
567
FOR XML PATH (''), TYPE) IndexCreditDefaultSwapData
568
FROM PortfolioIndexCreditDefaultSwapOptionData iod WHERE iod.TradeId = t.id
569
FOR XML PATH (''), TYPE) IndexCreditDefaultSwapOptionData
570
FROM PortfolioTrades t INNER JOIN PortfolioTradeGroupingIds pg ON pg.TradeId = t.Id AND pgo.GroupingId = pg.GroupingId
571
FOR XML PATH ('Trade'), TYPE)
572
FOR XML PATH ('Portfolio')) XMLData
573
FROM PortfolioTradeGroupingIds pgo
- PortfolioFxOptionData
- PortfolioFloatingLegGearings
- PortfolioFxForwardData
- PortfolioLegNotionals
- PortfolioCapRates
- PortfolioBaskets
- PortfolioBondData
- PortfolioTradeGroupingIds
- PortfolioSwaptionData
- PortfolioScheduleDataRules
- PortfolioFloatingLegSpreads
- PortfolioOptionExercises
- PortfolioFloorRates
- PortfolioSelection
- PortfolioLegData
- PortfolioFixedLegCPIRates
- PortfolioTrades
- PortfolioCapFloorData
- PortfolioEquityOptionData
- PortfolioCashflowDataCashflow
- PortfolioTradeActions
- PortfolioIndexCreditDefaultSwapOptionSwapData
- PortfolioScheduleDataDates
- PortfolioFloatingLegCaps
- PortfolioIndexCreditDefaultSwapOptionData
- PortfolioIndexCreditDefaultSwapData
- PortfolioEquityForwardData
- PortfolioFloatingLegFloors
- PortfolioCreditDefaultSwapData