1

SQL 評価では、Salesman Code で並べ替えられた過去 1 か月の自動車販売を一覧表示するクエリを実行する必要があります。SQL文を作成しました。ただし、実行すると、クエリに含めた列名以外は何も表示されません。私が使用したSQLコードは以下のとおりです。

SELECT CarForSale.SalesmanCode, 
  Salesman.SalesmanName, 
  Customer.CustomerCode, 
  Customer.CustomerName, 
  Customer.CustomerAddress
FROM 
(
  Centre 
  INNER JOIN Customer 
    ON Centre.CentreCode = Customer.CentreCode
) 
INNER JOIN CarForSale 
  ON (Customer.CustomerCode = CarForSale.CustomerCode) 
  AND (Centre.CentreCode = CarForSale.CentreCode), Salesman
WHERE CarForSale.CFSSoldDate BETWEEN CVDATE('01/02/2013') AND  CVDATE('01/03/2013')
ORDER BY Salesman.SalesmanCode;

誰かがフィードバックを持っている場合、または私が間違っている場所を知っている場合は、この問題に関する支援をいただければ幸いです。

要求されたサンプル データを次に示します。

  • CFS テーブル

     CFSCode CFSMake CFSModel CFSSellingPrice 
     000001 Mercedes  W168         45000             
    
     CFSSoldDate CentreCode SalesmanCode CustomerCode
     01/03/2013   00000001   0000000001 00000001
    
  • セールスマンテーブル

    SalesmanCode SalesmanName SalemanCommThisYear SalesmanStatus CentreCode
    0000000001    Liam Jones       2250         senior        00000001
    
  • 顧客表

    CustomerCode    CustomerName    CustomerAddress   CentreCode    CustomerStatus
    00000001    Gina Smith       1, The Lake,       00000002         good
                                 Merthyr Tydfil
    
4

1 に答える 1

2

現在のクエリには、いくつかの異常な構文があります。

AND (Centre.CentreCode = CarForSale.CentreCode), Salesman -- what's this

が何をしているのかわかりません, Salesman。ただしJOINSalesmanテーブルを使用しようとしている場合、クエリは次のようになります。

SELECT CarForSale.SalesmanCode, 
  Salesman.SalesmanName, 
  Customer.CustomerCode, 
  Customer.CustomerName, 
  Customer.CustomerAddress
FROM ((Centre 
INNER JOIN Customer 
  ON Centre.CentreCode = Customer.CentreCode) 
INNER JOIN CarForSale 
  ON (Customer.CustomerCode = CarForSale.CustomerCode) 
  AND (Centre.CentreCode = CarForSale.CentreCode)))
INNER JOIN Salesman
  ON CarForSale.SalesmanCode = Salesman.SalesmanCode
WHERE CarForSale.CFSSoldDate BETWEEN #01/02/2013# AND #01/03/2013#
ORDER BY Salesman.SalesmanCode;

また、MS Access では、日付を使用する場合、ポンド sig で囲む必要があります#。クエリは次のようになります。

SELECT CarForSale.SalesmanCode, 
  Salesman.SalesmanName, 
  Customer.CustomerCode, 
  Customer.CustomerName, 
  Customer.CustomerAddress
FROM ((Centre 
INNER JOIN Customer 
  ON Centre.CentreCode = Customer.CentreCode) 
INNER JOIN CarForSale 
  ON (Customer.CustomerCode = CarForSale.CustomerCode) 
  AND (Centre.CentreCode = CarForSale.CentreCode)))
INNER JOIN Salesman
  ON CarForSale.SalesmanCode = Salesman.SalesmanCode
WHERE CarForSale.CFSSoldDate BETWEEN #01/02/2013# AND #01/03/2013#
ORDER BY Salesman.SalesmanCode;

編集#1、何にも使用していないので、なぜCentreテーブルに参加しているのかわかりません。サンプル データを使用して MS Access で次のクエリを実行したところ、結果が得られました。

SELECT CarForSale.SalesmanCode, 
  Salesman.SalesmanName, 
  Customer.CustomerCode, 
  Customer.CustomerName, 
  Customer.CustomerAddress
FROM (Customer 
INNER JOIN CarForSale 
  ON Customer.CustomerCode = CarForSale.CustomerCode)
INNER JOIN Salesman
  ON CarForSale.SalesmanCode = Salesman.SalesmanCode
WHERE CarForSale.CFSSoldDate BETWEEN #01/02/2013# AND #01/03/2013#
ORDER BY Salesman.SalesmanCode;
于 2013-03-18T16:05:03.637 に答える