2016-07-07 8 views
0

調整目的のために、指定された日付ごとにすべての未処理の仕入先明細を示すテーブルが必要です。オープンなベンダー投稿のリストは、顧客残高の合計でなければなりません。ダイナミクスNAV - 日付ごとのオープンベンダー項目

以下に示すような簡単なクエリを作成しました。質問は、通常、支払い、払い戻しなどで投稿を閉じるときに機能します。私の問題は、クレジットで閉じられた請求書を処理し、その反対のコースから処理する方法です。

私はSQLのエキスパートではなく、ソースコードi Dynamics NAVにアクセスできません。

仕入先ポストを "通常"閉じると、仕入元元帳テーブルに1行、詳細仕入先エントリに1行が表示されます。私は指定された日付ごとに残量を計算するために、転記日付、決算日、金額と決算日を閉じています。 クレジットノートを使用して請求書を閉じると、詳細テーブルに2行あり、依然として仕入先エントリテーブルに1行しかありません。請求書とクレジットメモの両方を見ると、投稿のうちの1つだけが締切日と締め切り金額を保持していることがわかります。このため私はこれらの情報を無視する必要があると信じています。

私はまず、金額とグループを合計してVendor Ledger Entry No_で問題を解決できると信じています。合計が0に等しい場合、私は締め切り日と終了金額を無視することができます。この後で私は現在のクエリを使用できます。

問題を解決するお手伝いができますか?

データを視覚化する簡単なテーブルの例を添付できますか? QUERY - -

SELECT * 

-Case WHEN VLE.[Closed at Date] <= '2016-06-30' THEN DVLE.[Amount (LCY)]-VLE.[Closed by Amount (LCY)] 
WHEN VLE.[Closed at Date] > '2016-06-30' THEN DVLE.[Amount (LCY)] 
END as Beløb 

FROM [Detailed Vendor Ledg_ Entry] as DVLE 
JOIN [Vendor Ledger Entry] as VLE ON DVLE.[Vendor Ledger Entry No_] = VLE.[Entry No_] 

WHERE DVLE.[Posting Date] between '2015-01-04' and '2016-06-30' and 
DVLE.[Document Type] >= 2 and 

Case WHEN VLE.[Closed at Date] <= '2016-06-30' THEN -DVLE.[Amount (LCY)]+VLE.[Closed by Amount (LCY)] 

WHEN VLE.[Closed at Date] > '2016-06-30' THEN -DVLE.[Amount (LCY)] 
END <> 0 
+0

あなたはナビからの両方の例のスクリーンショットを投稿できますか? 「正常」とクレジットメモ。通常の場合、複数の詳細なエントリも存在する必要があるためです。 Firts詳細エントリは、初期販売エントリ( - 量)とその後に適用されたエントリ(+量)です。これらのエントリの合計はあなたに残量を与えます。 –

+0

私はテーブルをもう一度見て、詳細ベンダーのエントリの投稿を合計して結果を得ることができることを確認しました。あなたがこの表に言うように、必要な取引を保持します。返事ありがとうございました。正しい方向に戻ってきました。 – DickTaid81

答えて

0

私はこのクエリと私の問題を解決:

SELECT * 

FROM [Detailed Vendor Ledg_ Entry] as DVLE 
JOIN [Vendor Ledger Entry] as VLE 
ON DVLE.[Vendor Ledger Entry No_] = VLE.[Entry No_] 

WHERE DVLE.[Posting Date] <= '2016-06-30' 

GROUP BY VLE.[Posting Date] , 
VLE.[Vendor No_] , 
VLE.[Global Dimension 1 Code] , 
VLE.[Due Date] , 
VLE.[Closed at Date] , 
VLE.[External Document No_] , DVLE.[Vendor Ledger Entry No_] 

HAVING sum(DVLE.[Amount (LCY)]) <> 0 
関連する問題