/****** Object: Table [dbo].[PNR] Script Date: 24/11/2016 09:09:28 AM ******/ CREATE TABLE [dbo].[PNR]( [PnrId] [bigint] IDENTITY(1,1) NOT NULL, [RecordLocator] [varchar](6) NULL, [OfficeID] [varchar](50) NULL, [OfficeIATA] [varchar](50) NULL, [AgencyName] [varchar](50) NULL, [Sign] [varchar](50) NULL, [Observation] [varchar](255) NULL, [DateCreated] [datetime] NULL, [DateUpdated] [datetime] NULL, [AppOrgId] [int] NOT NULL, [PnrVersionId] [int] NOT NULL, [LowestFare] [varchar](255) NULL, [HighestFare] [varchar](255) NULL, [TripNumber] [varchar](255) NULL, [SAPNumber] [varchar](255) NULL, [Policy] [varchar](255) NULL, [ReasonCode] [varchar](255) NULL, [AirJustificationCode] [varchar](255) NULL, [AirJustificationText] [varchar](255) NULL, [AppliedDiscountCode] [varchar](255) NULL, [IsInPolicy] [varchar](255) NULL, [FreeText1] [varchar](255) NULL, [FreeText2] [varchar](255) NULL, [FreeText3] [varchar](255) NULL, [FreeText4] [varchar](255) NULL, [FreeText5] [varchar](255) NULL, [SiteCode] [varchar](10) NULL, [WebFareTotal] [varchar](255) NULL, CONSTRAINT [PK_Report] PRIMARY KEY CLUSTERED ( [PnrId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[PNR] ADD CONSTRAINT [LM_REPORT] DEFAULT (getdate()) FOR [DateCreated] GO ALTER TABLE [dbo].[PNR] ADD CONSTRAINT [DF_PNR_DateCreated1] DEFAULT (getdate()) FOR [DateUpdated] GO ALTER TABLE [dbo].[PNR] WITH CHECK ADD CONSTRAINT [FK_PNR_PnrVersion] FOREIGN KEY([PnrVersionId]) REFERENCES [dbo].[PnrVersion] ([PnrVersionId]) GO ALTER TABLE [dbo].[PNR] CHECK CONSTRAINT [FK_PNR_PnrVersion] GO /****** Object: Table [dbo].[TST] Script Date: 24/11/2016 09:11:25 AM ******/ CREATE TABLE [dbo].[TST]( [Id] [bigint] IDENTITY(1,1) NOT NULL, [BaseFareAmount] [float] NULL, [TotalFareAmount] [float] NULL, [TaxAmount] [float] NULL, [CurrencyBaseFare] [varchar](3) NULL, [PnrId] [bigint] NULL, [FareBasis] [varchar](250) NULL, [CurrencyTotalFare] [varchar](3) NULL, [SegmentRPH] [varchar](100) NULL, [EquivalentAmount] [float] NULL, [EquivalentCurrency] [varchar](3) NULL, [SEGMENTTATTOONUMBERS] [varchar](50) NULL, [PAXTATTOONUMBERS] [varchar](50) NULL, CONSTRAINT [PK_TST] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[TST] WITH CHECK ADD CONSTRAINT [FK_TST_PNR] FOREIGN KEY([PnrId]) REFERENCES [dbo].[PNR] ([PnrId]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[TST] CHECK CONSTRAINT [FK_TST_PNR] GO /****** Object: Table [dbo].[Ticket] Script Date: 24/11/2016 09:10:42 AM ******/ CREATE TABLE [dbo].[Ticket]( [Id] [bigint] IDENTITY(1,1) NOT NULL, [TicketNumber] [varchar](50) NULL, [PnrId] [bigint] NULL, [TicketDate] [date] NULL, [AirlineTktCode] [varchar](50) NULL, [TicketType] [varchar](3) NULL, [IssuerCode] [varchar](15) NULL, [FreeTex] [varchar](250) NULL, [AssociatedSegmentTattooNumbers] [varchar](50) NULL, [ASSOCIATEDPAXTATTOONUMBERS] [varchar](50) NULL, CONSTRAINT [PK_Ticket] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[Ticket] WITH CHECK ADD CONSTRAINT [FK_Ticket_PNR] FOREIGN KEY([PnrId]) REFERENCES [dbo].[PNR] ([PnrId]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[Ticket] CHECK CONSTRAINT [FK_Ticket_PNR] GOThe relationships between the tables are:
TST Table: TSTId PNRId PaxTattooNumbers 1 1 1,2,3 Ticket Table: TicketId PnrId AssociatedPaxTattooNumbers 1 1 1 2 1 2 3 1 3The PaxtattooNumbers represent passengers and a passenger can be a child which will share a ticket with a regular passenger so it is also possible to have ticket records like this:
TicketId PnrId AssociatedPaxTattooNumbers 1 1 1,2 2 1 3In this case 2 represents a child, so only 2 tickets were issued.
select pnrid ,[SEGMENTTATTOONUMBERS] ,[PAXTATTOONUMBERS] from tst where not exists (select pnrid ,associatedsegmenttattoonumbers ,associatedpaxtattoonumbers from ticket where pnrid = tst.pnrid and associatedsegmenttattoonumbers = segmenttattoonumbers and associatedpaxtattoonumbers = paxtattoonumbers) order by pnridHow would I adjust this to handle the splitting up of the PaxTattooNumbers?