2017-11-15 6 views
0

私はSQLとAccessにかなり新しいので、私がしようとしていることは非常に簡単かもしれません。SQL(アクセス):2人の扶養家族による結果の制限

地域と日付(月と年)ごとに販売されたすべての製品(値と量を含む)をリストするクエリを作成しました。製品が販売されている場合は、その特定の製品と地域の年間12か月間の返品をすべて希望します。これはすべて動作します。しかし、特定の製品や地域で1年に製品の販売が "0"となるすべてのエントリを除外してクエリを制限したいとします。

例:特定の地域で製品が販売されていない場合、その年の製品と地域のエントリは返されません。これは可能ですか?

以下のコードでは、NationalCode = product、およびRegionCode = Regionです。他のすべては自明でなければなりません。 :)

解決策はWHEREステートメントが必要だと思いますが、「0」以上の値しか返さない節が含まれています。しかし、これはまた、0である任意の月も削除します。ある年に売上があった場合、売上がない月を保持したいと考えています。

上記のことを意味します。ありがとうございました!

SELECT IIf(isnull(sum(MonthlyData.[Sales 
Value])),0,(sum(MonthlyData.[Sales Value])/1000)) AS [Value], 
IIf(isnull(sum(MonthlyData.[Sales Units])),0,sum(MonthlyData.[Sales 
Units])) AS Volume, [02-Query-Filter].RegionCode, 
[02-Query-Filter].NationalCode, [02-Query-Filter].Year, [02-Query-Filter].RawMonth 

FROM [02-Query-Filter] 

LEFT JOIN MonthlyData 

ON ([02-Query-Filter].RegionCode=Left(MonthlyData.Region,2)) AND 
([02-Query-Filter].NationalCode=MonthlyData.[Nordic Code]) AND 
([02-Query-Filter].RawMonth=MonthlyData.Month) 

WHERE MonthlyData.[Sales Value]>0 

GROUP BY [02-Query-Filter].RegionCode, 
[02-Query-Filter].NationalCode, [02-Query-Filter].Year, [02-Query-Filter].RawMonth 
+0

レポートを作成することはできますが、データがない行を作成したいのでクエリについてはわかりません。たとえ売り上げがなくても、毎月の行が実際にある場合を除きます。 (?) – wazz

+0

こんにちは、はい、私は毎月行を取得するように既に作っています。だからこの部分は機能します。しかし、欠点は、私は全く販売していない製品のためにこれを得ることです。ですから、私は地域内で売上が全くない年を除外したいと思います。 – Philip

+0

セールスのある製品のみを取得する別のクエリから簡単に開始できます。毎月のステップ2(上記のクエリ)の基礎として使用するよりも。 – wazz

答えて

0

あなたは次に作成するすべての製品、地域、すべての年(適宜を加算)を選択し、サブクエリを作成し、このX.

0コールに合算されている組み合わせを除外したいですすべての製品、地域およびすべての年/月を返し、年および月フィールド(または少なくとも年フィールド)も保持する別のクエリ。組み合わせ。これをYとします。

製品、地域、および年のXに結合されたYからのすべてのレコードを選択する別のクエリZを作成します。

私が元の問題を理解していれば、クエリZはあなたに求めるデータを与えます。

関連する問題