동일한 기본 테이블 (dbo.Submission)에서 가져 오는 2 세트의 XML 데이터를 함께 결합했습니다.SQL XML - 2 세트의 개별 데이터 - ORDER BY 및 RowNumber
[AddedDt]라는 dbo.Submission에있는 DATETIME 필드가 있는데, 다른 기준 2 세트를 기반으로 데이터를 선택하고 있지만 반환 된 데이터의 ORDER BY [AddedDt]를이 XML 제출 형식으로 지정하고 싶습니다. 시간 순서대로 가야한다.
다음은 내 SELECT 문입니다. 각 쿼리 내에서 ORDER BY를 사용했지만 [AddedDt] Order의 관련 쿼리 만 주문합니다. 나는
ROW_NUMBER() OVER (ORDER BY (SELECT sub.AddedDt
)) AS "PolicyRecordNumber" ,
그러나 이것은 '정책'각 정책의 요소 아래에 표시하고, 순차적으로, 어떻게 할 수 실행이 원래의 데이터 사용했다, 행의 번호가 추가 노드를 추가 할 필요가 나는 이것을 성취합니까?
SELECT (SELECT sub.Polno AS "Cancellation/PolicyNumber" ,
sub.Term_date AS "Cancellation/CancellationDate" ,
sub.PremXIPT AS "Cancellation/ReturnPremium/NetAmount" ,
sub.PremIPT AS "Cancellation/ReturnPremium/Ipt" ,
sub.FeeXIPT AS "Cancellation/Fee/NetAmount" ,
sub.FeeIPT AS "Cancellation/Fee/Ipt"
FROM dbo.Submissions sub
WHERE sub.[Transaction] = 'Cancellation'
ORDER BY sub.AddedDt
FOR
XML PATH('Policy') ,
TYPE
) ,
(SELECT sub.Polno AS "PCNewBusiness/PolicyNumber" ,
sub.[Inception Date] AS "PCNewBusiness/StartDate" ,
sub.[Renewal Date] AS "PCNewBusiness/StartDate" ,
sub.PremXIPT AS "PCNewBusiness/Premium/NetAmount" ,
sub.PremIPT AS "PCNewBusiness/Premium/IPT" ,
sub.FeeXIPT AS "PCNewBusiness/Fee/NetAmount" ,
sub.FeeIPT AS "PCNewBusiness/Fee/IPT" ,
ph.Title AS "PCNewBusiness/Policyholder/PolicyholderType/PrivateIndividual/Name/Title" ,
ph.Firstname AS "PCNewBusiness/Policyholder/PolicyholderType/PrivateIndividual/Name/FirstNames" ,
ph.Surname AS "PCNewBusiness/Policyholder/PolicyholderType/PrivateIndividual/Name/LastName" ,
ph.DateOfBirth AS "PCNewBusiness/Policyholder/PolicyholderType/PrivateIndividual/DateOfBirth" ,
ph.MaritalStatus AS "PCNewBusiness/Policyholder/PolicyholderType/PrivateIndividual/MaritalStatus" ,
ph.Sex AS "PCNewBusiness/Policyholder/PolicyholderType/PrivateIndividual/Sex" ,
ph.Contact AS "PCNewBusiness/Policyholder/Contact" ,
ph.Addr1 AS "PCNewBusiness/Policyholder/Address/Address1" ,
ph.Addr2 AS "PCNewBusiness/Policyholder/Address/Address2" ,
ph.Addr3 AS "PCNewBusiness/Policyholder/Address/Address3" ,
ph.Addr4 AS "PCNewBusiness/Policyholder/Address/Address4" ,
ph.Pcode AS "PCNewBusiness/Policyholder/Address/Postcode" ,
ISNULL(ph.Tel, ph.Tel2) AS "PCNewBusiness/Policyholder/Phone" ,
ph.Email AS "PCNewBusiness/Policyholder/Email" ,
cov.Cover AS "PCNewBusiness/Cover/CoverType" ,
cov.Excess AS "PCNewBusiness/Cover/PolicyExcess" ,
cov.NCBYears AS "PCNewBusiness/Cover/NoClaimsBonusYears" ,
cov.NCBOtherVeh AS "PCNewBusiness/Cover/NCBOtherVehicle" ,
cov.ClassOfUse AS "PCNewBusiness/Cover/Use" ,
(SELECT dri1.RelationshipToPH 'RelationshipToPolicyholder' ,
(SELECT dri2.Drivertitle 'Title' ,
dri2.FirstName 'FirstNames' ,
dri2.Surname 'LastName'
FROM dbo.Drivers dri2
WHERE dri1.ID = dri2.ID
AND dri1.Driver = dri2.Driver
FOR
XML PATH('Name') ,
TYPE
) ,
dri1.DOB 'DateOfBirth' ,
dri1.Licence 'LicenceType' ,
dri1.LicenceHeld 'PeriodLicenceHeld' ,
(SELECT ph1.Addr1 'Address1' ,
ph1.Addr2 'Address2' ,
ph1.Addr3 'Address3' ,
ph1.Addr4 'Address4' ,
ph1.Pcode 'AddressPostcode'
FROM dbo.PolicyHolder ph1
WHERE ph1.ID = ph.ID
FOR
XML PATH('HomeAddress') ,
TYPE
) ,
dri1.PeriodResident 'PeriodResident' ,
dri1.VehFreq 'VehicleUseFrequency' ,
dri1.OtherVehs 'HasUseOfOtherVehicle' ,
ISNULL(dri1.Occupation, [dri1].[2ndOccupation]) 'MainOccupation' ,
dri1.[2ndOccupation] 'SecondaryOccupation' ,
dri1.RefIns 'MotorInsuranceRefusalDetails' ,
dri1.Accconv 'HasCriminalConvictions' ,
(SELECT 'false' 'Removed' ,
TWClaimType 'ClaimType' ,
IncidentDate ,
Amount
FROM dbo.Claims cla1
WHERE cla1.ID = sub.ID
AND cla1.Driver = dri1.Driver
FOR
XML PATH('DriverClaim') ,
TYPE
) AS "Claims" ,
(SELECT 'false' 'Removed' ,
con1.ConvCode 'ConvictionCode' ,
con1.ConvDate 'ConvictionDate' ,
con1.Amount 'Fine'
FROM dbo.Convictions con1
WHERE con1.ID = sub.ID
AND con1.Driver = dri1.Driver
FOR
XML PATH('DriverConviction') ,
TYPE
) AS "Convictions" ,
(SELECT 'false' 'Removed' ,
med1.Description ,
med1.AgeDiagnosed ,
med1.Medication ,
med1.[DVLA Notified] 'DvlaNotified' ,
med1.CondNote 'ConditionDeteriorating' ,
med1.LicRest 'LicenceRestricted'
FROM dbo.Medical med1
WHERE med1.ID = sub.ID
AND med1.Driver = dri1.Driver
FOR
XML PATH('DriverMedicalCondition') ,
TYPE
) AS "MedicalConditions"
FROM dbo.Drivers dri1
WHERE dri1.ID = sub.ID
FOR
XML PATH('Drivers') ,
TYPE
) AS "PCNewBusiness/Driver" ,
veh.Make AS "PCNewBusiness/Vehicles/Vehicle/Make" ,
veh.Model AS "PCNewBusiness/Vehicles/Vehicle/Model" ,
veh.Reg AS "PCNewBusiness/Vehicles/Vehicle/RegistrationNumber" ,
veh.Body AS "PCNewBusiness/Vehicles/Vehicle/BodyType" ,
veh.Parking AS "PCNewBusiness/Vehicles/Vehicle/LocationWhenNotInUse" ,
(SELECT SUM(Mileage) 'AnnualMileage'
FROM dbo.Drivers dri2
WHERE sub.ID = dri2.ID
) AS "PCNewBusiness/Vehicles/Vehicle/AnnualMileage" ,
veh.YearMade AS "PCNewBusiness/Vehicles/Vehicle/YearOfManufacture" ,
veh.Engine_size AS "PCNewBusiness/Vehicles/Vehicle/EngineSizeCc" ,
veh.Purchasedate AS "PCNewBusiness/Vehicles/Vehicle/PurchaseDate" ,
veh.Value AS "PCNewBusiness/Vehicles/Vehicle/PurchasePrice" ,
veh.Value1 AS "PCNewBusiness/Vehicles/Vehicle/EstimatedValue" ,
veh.Seats AS "PCNewBusiness/Vehicles/Vehicle/NumberOfSeats" ,
veh.RightHandDrive AS "PCNewBusiness/Vehicles/Vehicle/RightHandDrive" ,
veh.Fuel AS "PCNewBusiness/Vehicles/Vehicle/FuelType"
FROM dbo.Submissions sub
LEFT OUTER JOIN dbo.PolicyHolder ph ON ph.ID = sub.ID
LEFT OUTER JOIN dbo.Cover cov ON cov.ID = sub.ID
LEFT OUTER JOIN dbo.Vehicle veh ON veh.ID = sub.ID
WHERE sub.[Transaction] = 'New Business'
ORDER BY sub.AddedDt
FOR
XML PATH('Policy') ,
TYPE
)
FOR XML PATH('Policies');
안녕을 가지고있다! 이 질문이 해결 되었습니까? 추가 도움이 필요합니까? 나에게 한 가지 힌트를 허용하십시오.이 질문이 해결되면 (가장) 답변의 투표 카운터 아래에서 수락 확인을 확인하는 것이 매우 친절한 것입니다. 이것은 1)이 이슈를 해결 된 것으로 표시 할 것입니다. 2) 추종자가 가장 좋은 해결책을 쉽게 찾을 수 있도록합니다. 3) 응답자에게 포인트를 지불하고 4) 포인트를줍니다. 15 포인트의 국경을 넘었으므로 추가로 투표에 기부합니다. 이것은 당신을 감사하는 SO 방법입니다. 해피 코딩! – Shnugo