Hello,

ma requete fonctionne bien mais quand j'ai ajouté un champ 'FlightNumber', j'ai eu des doublons.

pour info : le prix du bon d'achat 'Amount' de la table VoucherTransaction n'a aucun lien avec le 'FlightNumber' de la table PassengerJourneySegment.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
SELECT  DISTINCT 'VO' + V.VoucherReference as [VoucherReference]
		,pjs.FlightNumber
		,case when FlightNumber in (500,...) then 'Sud-Est'
		     when FlightNumber in (410,...) then 'Nord'
		     when FlightNumber in (333,...) then 'Atlantique'
		     else null
		 end AXE
		,VB.VoucherBasisCode
		,VB.Name
		,convert(char(10),V.CreatedDate,103) as DateCreation
		,convert(char(10),V.Expiration,103) as DateExpiration
		,convert(char(10),P.CreatedDate,103) as DateUtilisation
		,VT.RecordLocator 
		,case V.Status
			when 1 then 'xxxxx'
		end as Statut
		,VT.Amount
FROM Payment P
	 join Booking B on P.ReferenceID = B.BookingId
	 join BookingPassenger BP  on B.BookingID = BP.BookingID
	 join PassengerJourneySegment PJS  on PJS.PassengerID = BP.PassengerID
	 join VoucherTransaction VT on P.PaymentID = VT.PaymentID
	 join Voucher V on VT.VoucherID = V.VoucherID and V.Status = 1
	 join VoucherIssuance VI on V.VoucherIssuanceID = VI.VoucherIssuanceID
	 join VoucherBasis VB on VI.VoucherBasisCode = VB.VoucherBasisCode
WHERE B.Status in (2,3)
		and P.PaymentMethodCode = 'VO'
		and b.RecordLocator = 'E5BI9M'
Result :

VoucherReference FlightNumber AXE VoucherBasisCode Name DateCreation DateExpiration DateUtilisation RecordLocator Statut Amount
VO0001 500 Sud-Est GC Geste commercial 01/01/2012 01/01/2013 25/05/2012 E5BI9M xxxxx 10,00
VO0002 501 Sud-Est GC Geste commercial 01/01/2012 01/01/2013 25/05/2012 E5BI9M xxxxx 10,00
Ce résultat est faut parce que je dois avoir 10 euros soit pour l'aller (500) soit pour le retour (501) (le voyageur a payé que 10 euros en bon d'achat).
Avez vous une idée pour améliorer cette requete svp?

Merci