Использование Intervalmatch без синтетического ключа
Я пытаюсь использовать IntervalMatch
функция для объединения двух таблиц вместе ниже
InvoiceData:
load Supplier
, SupplierName
, SupplierValue
, Invoice
, InvoiceDate
, DueDate
, OrigInvValue
, OrigDiscValue
, PaymentReference
, PaymentNumber
, PostValue
, Value
, MthInvBal1
, MthInvBal2
, MthInvBal3
, Currency
, ConvRate
, DatabaseName&'.'&Supplier&'.'&Invoice as SupplierInvoice
, DatabaseName as Company
;
SQL Select ****;
CurrencyRates:
Load date(floor([StartDateTime])) as [StartDate]
,date(floor([EndDateTime])) as [EndDate]
,[Currency] as BaseCurrency
,[CADDivision]
,[CHFDivision]
,[EURDivision]
,[GBPDivision]
,[JPYDivision]
,[USDDivision]
,[CADMultiply]
,[CHFMultiply]
,[EURMultiply]
,[GBPMultiply]
,[JPYMultiply]
,[USDMultiply];
SQL SELECT [CR].[StartDateTime]
, [CR].[EndDateTime]
, [CR].[Currency]
, [CR].[CADDivision]
, [CR].[CHFDivision]
, [CR].[EURDivision]
, [CR].[GBPDivision]
, [CR].[JPYDivision]
, [CR].[USDDivision]
, [CR].[CADMultiply]
, [CR].[CHFMultiply]
, [CR].[EURMultiply]
, [CR].[GBPMultiply]
, [CR].[JPYMultiply]
, [CR].[USDMultiply]
FROM [Lookups].[CurrencyRates] [CR];
IntervalMatch:
IntervalMatch (InvoiceDate)
Load distinct [StartDate],[EndDate] Resident CurrencyRates;
Читая литературу, я не думаю, что должен быть синтетический ключ между соответствием между таблицами и курсами валют, однако моя модель данных все еще показывает это. Это правильно?
1 ответ
Вы получаете синтетический ключ каждый раз, когда любые две таблицы связаны более чем с одним полем (в вашем случае StartDateTime и EndDateTime).
Глядя на статью Хенрика Кронстрема в блоге Qlik Design ( https://community.qlik.com/blogs/qlikviewdesignblog/2013/04/04/intervalmatch), вы можете прочитать, что:
Кроме того, модель данных содержит составной ключ (поля FromDate и ToDate), который будет проявляться как синтетический ключ QlikView. Но не бойтесь. Этот синтетический ключ должен быть там; это не только правильно, но и оптимально, учитывая модель данных. Вам не нужно удалять его.
Поэтому вполне естественно, что вы получите этот синтетический ключ.