0

私はこのクエリにかなりこだわっています。まず第一に、私は何を達成したいですか?3 つのテーブル (既に正しい) を内部結合し、日付が当月であるかどうかに応じてデータを除外したいと考えています。日付が当月でない場合、フィールド「bedrag」は入力せず、ゼロに設定する必要があります。テーブルのすべても表示されるはずですが、「bedrag」フィールドは変更しないでください。

日付が現在の月からのものである場合は、「bedrag」に追加し (それを行うためのグループに注意してください)、すべても表示する必要があります。今、私のクエリは、今月のものではないデータがある場合を除いて、すべて正しいことを行います。その後、レコードが失われるか、表示されなくなります。

テーブルのデザイン: http://imgur.com/vhONCq1

クエリ:

SELECT        c.id, c.omschrijving, l.maximumBedrag, SUM(IIF(IsNULL(f.bedrag), 0, f.bedrag)) AS bedrag
FROM            ((Categorie c LEFT OUTER JOIN
                         Financien f ON f.categorieId = c.id) LEFT OUTER JOIN
                         Limiet l ON l.categorieId = c.id)
WHERE        (f.inkomstOfUitgave IS NULL) OR
                         (f.inkomstOfUitgave = 1)  AND (format(f.datum, 'yyyy-mm-dd') > format(NOW(), 'yyyy-mm'))
GROUP BY c.id, f.categorieId, c.omschrijving, l.maximumBedrag

注: これは通常の SQL ではなく、Access DB から DAL および BLL レイヤーにデータを取得するために C# で使用されるバリアントです。

クエリでどのメッセージが表示され、どのように問題が発生するかを確認できる例: http://imgur.com/V0N6Wbk

記録が今月のものでない場合、すべてのデータを表示する方法を教えてもらえますか?

ありがとう!

4

1 に答える 1