Relatie gezocht tussen SalesInvoiceLinesIncremental en TransactionLinesIncremental

Kolom ID is een unieke sleutel in de tabel SalesInvoiceLinesIncremental.

Deze vinden we niet terug in TransactionLinesIncremental.

We zijn naarstig op zoek naar een link tussen beide tabellen.

Tot nu toe vonden we in TransactionLinesIncremental alleen een verwijzing van het factuurnummer en het itemID. Zelfs samengevoegd zijn die geen unieke identifier van een SalesInvoiceLine.

Is er een manier om een goede link te leggen tussen beide tabellen? We zouden graag per record in SalesInvoiceLinesIncremental de gerelateerde transactions kunnen selecteren.

Wat is het doel waarvoor die relatie gezocht wordt?

Om (tegen)boekingen van omzet op verschillende grootboekrekeningen te kunnen alloceren per salesinvoiceline in plaats van alleen per invoice

De relatie kan gelegd worden op basis van InvoiceNumber zoals getoond in deze queries. Merk op dat tot het einde van 2010 en in 2016 Exact Online incidenteel deze gegevens niet vastgelegd heeft. Mogelijk zijn verkoopfacturen pas geintroducerd in Exact Online tussen 2008 en 2010.

De relatie klopt altijd sinds 2017.

--
-- Sales ledger.
--
create or replace table sie@inmemorystorage
as
select sie.invoicenumber
,      max(sie.linenumber) linenumber_max
,      max(sie.created) created_max
from   salesinvoicelinesincremental@eol sie
where  sie.invoicenumber is not null
group 
by     sie.invoicenumber

--
-- General ledger.
--
create or replace table tle@inmemorystorage
as
select tle.invoicenumber
,      max(tle.linenumber) linenumber_max
,      max(tle.created) created_max
from   transactionlinesincremental@eol tle
--
-- Only include sales transactions.
--
join   ExactOnlineREST..Journals@eol jnl
on     jnl.GLAccountType = 20 /* Sales */
and    tle.journalcode = jnl.code
where  tle.invoicenumber is not null
and    ( tle.created not between to_date('20081010', 'YYYYMMDD') and to_date('20081017', 'YYYYMMDD') )
and    ( tle.created not between to_date('20081231', 'YYYYMMDD') and to_date('20081231', 'YYYYMMDD') )
and    tle.linenumber not in (0, 9995, 9996, 9997, 9998, 9999)
group 
by     tle.invoicenumber

--
-- Exact Online did not use Sales Invoices till somewhere between February 21 and February 28 of 2008.
--
-- However, around the specific dates of 13 October 2008 and December 30, 2010, some bugs seem to have
-- caused sales invoices not to be created for which transaction lines were created.
--
-- Further remarks: in February and April 2016, sometimes two transaction lines were created for
-- a single sales invoice line.
--
-- Finally, sales invoices were created between January 2008 and October 2008, for which NO transaction
-- lines were created.
--
-- With these exemptions, the following list is empty.
--
select sie.invoicenumber  sie_invoicenumber
,      tle.invoicenumber  tle_invoicenumber
,      sie.linenumber_max sie_linenumber_max
,      tle.linenumber_max tle_linenumber_max
,      sie.created_max    sie_created_max
,      tle.created_max    tle_created_max
from   sie@inmemorystorage sie
full
outer
join   tle@inmemorystorage tle
on     tle.invoicenumber = sie.invoicenumber
where  ( coalesce(sie.invoicenumber, -1) != coalesce(tle.invoicenumber, -1) )
       or
       ( coalesce(sie.linenumber_max, -1) != coalesce(tle.linenumber_max, -1) )

Deze vraag is automatisch gesloten na 1 week inactiviteit. Het laatste gegeven antwoord is gemarkeerd als oplossing.

Gelieve een nieuwe vraag te stellen via een apart topic als het probleem opnieuw optreedt. Gelieve in de nieuwe vraag een link naar dit topic op te nemen door de URL er van in de tekst te plakken.

Dit topic is 3 dagen na het laatste antwoord automatisch gesloten. Nieuwe antwoorden zijn niet meer toegestaan.