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.
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.