私は現在、仕事用のデータベースを作成しようとしています。これまでAccessを使用したことはありません。これまでのところ、_beテーブルにフィードするデータ入力フォームを作成することができました。
私が今やろうとしているのは、3つの形式(YTD、MTD、WTD)でレコードの総数を照会し、個別に達成できた「飛行機モデル」でグループ化できるようにすることです。問題は、そのデータをレポートに配置しようとすると、3つのクエリすべてを含むサブレポートを作成する必要があることです。
これらすべてを1つのクエリにまとめたり、データを損なうことなくクエリをマージしたりする方法はありますか?これまでのところ、UnionまたはJoinを使用しようとすると、データが正しくフィードされません。クエリを実行しているフィールドはクエリごとに同じですが、日付だけが基準が異なります。
YTD SQL
SELECT [BlueStreak Tracking1].[Airplane Model], Count(*) AS [This Year]
FROM [BlueStreak Tracking1]
WHERE ((([BlueStreak Tracking1].[Issue Date]) Between DateSerial(Year(Date()),1,1) And DateSerial(Year(Date()),12,31)))
GROUP BY [BlueStreak Tracking1].[Airplane Model]
ORDER BY [BlueStreak Tracking1].[Airplane Model];
MTD SQL
SELECT [BlueStreak Tracking1].[Airplane Model], Count(*) AS [This Month]
FROM [BlueStreak Tracking1]
WHERE (((Year([Issue Date]))=Year(Date())) AND ((Month([Issue Date]))=Month(Date())))
GROUP BY [BlueStreak Tracking1].[Airplane Model]
ORDER BY [BlueStreak Tracking1].[Airplane Model];
WTD SQL
SELECT [BlueStreak Tracking1].[Airplane Model], Count(*) AS [This Week]
FROM [BlueStreak Tracking1]
WHERE ((([BlueStreak Tracking1].[Issue Date]) Between DateAdd("d",-((Weekday(Date())-1)),Date()) And Date()))
GROUP BY [BlueStreak Tracking1].[Airplane Model]
ORDER BY [BlueStreak Tracking1].[Airplane Model];
あなたはユニオンオールでそれを行うことができるはずです。これが機能するかどうかを確認します。
SELECT [BlueStreak Tracking1].[Airplane Model], 'This Year' as [TimeFrame], Count(*)
FROM [BlueStreak Tracking1]
WHERE ((([BlueStreak Tracking1].[Issue Date]) Between DateSerial(Year(Date()),1,1)
And DateSerial(Year(Date()),12,31)))
GROUP BY [BlueStreak Tracking1].[Airplane Model]
UNION ALL
SELECT [BlueStreak Tracking1].[Airplane Model], 'This Month', Count(*)
FROM [BlueStreak Tracking1]
WHERE (((Year([Issue Date]))=Year(Date())) AND ((Month([Issue Date]))=Month(Date())))
GROUP BY [BlueStreak Tracking1].[Airplane Model]
UNION ALL
SELECT [BlueStreak Tracking1].[Airplane Model], 'This Week', Count(*)
FROM [BlueStreak Tracking1]
WHERE ((([BlueStreak Tracking1].[Issue Date]) Between DateAdd("d",-
((Weekday(Date())-1)),Date()) And Date()))
GROUP BY [BlueStreak Tracking1].[Airplane Model]
ORDER BY [BlueStreak Tracking1].[Airplane Model];
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加