2011-03-24 14 views
0

私はいくつかのA-Level ICTコースワークのためのかなりシンプルなシステムを作成しています。基本的には、顧客と彼らが取り組んでいる車両を記録するためのメカニックのためのシステム。主キー:外部キーアクセスクエリの問題 - ウィザードで作成されていない限り表示されない結果

顧客:得意先

従業員:社員

車種:登録

パート:PartID

私は、次の主キーを持つ5つのテーブル

表を持っています

固定車両:FixedID:登録:得意先コード:パートID:EMployeeID

基本的には、ウィザードを使用して作成されない限りクエリを作成すると、条件を空白のままにしても結果が表示されません。私ができることを望んでいるのは、登録と車種、モデルと登録だけでなく、顧客の名前と、彼らが請求書を支払ったかどうかを表示することによって車両を探すことです。私はそれがすべてのヘルプは、事前に Access Database

おかげであれば、あまりにもここで

は私のDropboxアカウントにデータベースがある顧客の検索で同じことを行うことができるようにしたいのですが - 誰かが助けることを願って

答えて

0

内部結合の代わりに外部結合を使用してみてください。クエリウィンドウで結合を作成するときには、その行を右クリックして 'プロパティ'を含むドロップダウンメニューを表示することができます。ご希望の場合は

または、「外側左」から「内部」に変更するSQLビューを使用し

1

ここで起こって物事のカップルがあります。まず、ウィザードを使用せずにQBEグリッドにクエリを作成できるはずです。第二に、VehicleとCustomerの表が必要なのは、これら2つのデータだけを求めているからです。第3に、VehicleテーブルのCustomerID外部キーは必須ではないことに注意してください。したがって、特定のVehicle行にCustomerIDがないと仮定する必要があります。彼らは車を持っていたかどうか、あなたが顧客で検索したい場合は

SELECT Vehicle.Make, Vehicle.Model, Vehicle.Year, Vehicle.Registration 
    , Customer.Forename, Customer.Surname, Customer.Paid 
FROM Vehicle 
    LEFT JOIN Customer 
     ON Customer.CustomerID = Vehicle.CustomerID; 

、それであれば車両情報を表示するには:彼らは顧客を持っているかどうか、あなたが参加左を使用する必要があるかどうか、すべての車両の行を取得するにはお客様は、この場合、親テーブルであるため、特定の顧客が複数の車両の列に関連付けられている場合、結果はその顧客のデータを複製すること、しかし

SELECT Vehicle.Make, Vehicle.Model, Vehicle.Year, Vehicle.Registration 
    , Customer.Forename, Customer.Surname, Customer.Paid 
FROM Customer 
    LEFT JOIN Vehicle 
     ON Customer.CustomerID = Vehicle.CustomerID; 

注:あなたが参加を逆になり、存在しています。つまり、顧客が関連付けられているすべての車両(または車両列の関連付けがない場合は顧客の行)に1つの行が表示されます。

関連する問題