2016-07-05 26 views
0

Hallo Jungen Verbindung, wenn Sie sich mit Microsoft Dynamics Navision 2013 und seinen Tabellen dann könnten Sie in der Lage, mir zu helfenMicrosoft Navision Werteingabe Tabelle Verkaufsbetrag (tatsächlich) falsch, wenn an einem anderen Tisch

Hallo

Ich verwende Microsoft Dynamics NAV 2013, SQL-Server 2014, Tableau Desktop

Ich habe eine neue Tabelle erstellt, die Daten aus den Tabellen Verbrauchssteuer, Ort, Artikel und Artikel-Maßeinheit enthält, um Transfer Verbrauchsteuer zu berechnen. Transfersteuer ist eine Steuer, die wir bezahlen, wenn unser Wein von einem Lagerhaus in ein anderes transportiert wird. Ich machte eine Linke Verbindung zur Werteingabetabelle, die alle artikelbezogenen Transaktionen enthält, da ich die Spalte Rechnungsmenge benötige, um die Transfersteuer zu berechnen. So berechne ich die Transfer Verbrauchsteuer: (Fakturierte Menge/Liter Umrechnungsfaktor * Einheitsrate) = Transfer Verbrauchsteuer. Mit diesem Ansatz habe ich das gewünschte Ergebnis erhalten, finden Sie in dem SQL-Skript, um die Übertragung Excise

SELECT DISTINCT 
    b.[Entry No_] ,  
    a.[Starting Date],  
    b.[Posting Date],  
    b.[Item No_],  
    b.[Invoiced Quantity],  
    b.[Sales Amount (Actual)],  
    a.[Litre Conversion Factor],  
    a.[Unit Rate] ,  
    b.[Location Code],  
    a.[Excise Location],  
    a.[Excise Type Code],  
    a.[Unit Of Measure Code]  
FROM [Spier Live$Value Entry] b  
LEFT JOIN [Transfer Excise Tbl] a 
    ON a.[No_] = b.[Item No_]  
    AND b.[Location Code] = a.[Location Code]  
    AND DateDiff(y,b.[Posting Date],a.[Starting Date]) > -365  
    AND DateDiff(y,b.[Posting Date],a.[Starting Date]) < 0  
WHERE b.[Posting Date] > '2013-02-26'  
    AND b.[Gen_ Bus_ Posting Group] IN ('LOCA','EXSA')  
    AND b.[Invoiced Quantity] <>0  
GROUP BY b.[Entry No_] ,a.[Starting Date], b.[Posting Date], b.[Item No_], b.[Invoiced Quantity], 
    b.[Sales Amount (Actual)], a.[Litre Conversion Factor], a.[Unit Rate] , 
    b.[Location Code], a.[Excise Location], a.[Excise Type Code], a.[Unit Of Measure Code] 

Mit all dies getan, der Verkaufsbetrag (tatsächlich) Wertänderungen zu erhalten, die nicht der Fall sein sollte. Jemand hat mir gesagt, dass es die Linke Verknüpfung sein könnte, die dazu führt, dass sich der Verkaufsbetrag (Aktuell) ändert. Ich kann das Skript nicht ändern, weil dann der Transfer-Verbrauchswert falsch ist oder es eine andere oder bessere Möglichkeit gibt, diese Abfrage zu schreiben, so dass die Werte für Umsatzbetrag (Ist) und Transferverbrauch identisch bleiben. Oh der Grund für die Art, wie ich die Abfrage geschrieben habe, ist, weil ich die Einheitsrate für jede Artikeltransaktion erhalten möchte.

Ich weiß wirklich nicht, warum dieses Skript die Verkaufsmenge ändert sich (tatsächlich)

Vielen Dank im Voraus für Ihre Hilfe

+0

was fragen Sie? Ihr Skript ist kein 'modify'-Skript. – xdd

Antwort

0

Die Wurzel des Problems ist nicht in der Verknüpfung. Eigentlich ist es nicht sinnvoll, Ergebnisse auf Betragsfeldern wie "Verkaufsbetrag (Ist)" und "Einheitsrate" zu gruppieren. Ich nehme an, dass Sie den Umsatzbetrag und die Rechnungsmenge über alle zugehörigen Werteinträge in einer Artikeltransaktion summieren möchten. Dann sollten Sie diese Felder aus GROUP BY-Klausel entfernen und eine Summe auf sich hinzufügen:

SELECT 
    ... 
    SUM([Invoiced Quantity]), 
    SUM([Sales Amount (Actual)]) 

dann Gruppenergebnisse von [Artikelposten Nr] anstelle von [Eintrag Nr]. Die Eintragsnummer in der Werteingabe ist eine Kennung einer Finanz (kosten) transaktion, während die Artikelbucheintrags-Nr. identifiziert eine artikelbezogene Aktivität.