1

Visual Basic を使用してデータベースにアクセスするためのクエリに問題があります。以下のように2つのテーブルがあるとしましょう。

+-------+-------------+-------------+------------+
| ID    | Date1       | Date2       | CustomerID |
+-------+-------------+-------------+------------+
|     1 | 1-1-2013    | 1-1-2012    |          1 |
|     2 | 1-1-2013    | 1-1-2012    |          1 |
|     3 | 1-1-2013    | 1-1-2012    |          2 |
|     4 | 1-1-2013    | 1-1-2012    |          3 |
|     5 | 1-1-2013    | 1-1-2012    |          3 |
+-------+-------------+-------------+------------+

+----------+---------+
| ID       |  Name   |
+----------+---------+
|        1 | John    |
|        2 | Tina    |
|        3 | Patrick |
+----------+---------+

Customer - ID次のような最初のテーブルの一意の番号のみで結果を取得したいと思います。

+----------+----------+-------------+------------+
| ID       |   Date1  |    Date2    | CustomerID |
+----------+----------+-------------+------------+
|        1 | 1-1-2013 | 1-1-2012    |          1 |
|        3 | 1-1-2013 | 1-1-2012    |          2 |
|        4 | 1-1-2013 | 1-1-2012    |          3 |
+----------+----------+-------------+------------+

このクエリを試してみましたが、うまくいきませんでした。

sqL = " SELECT DISTINCT Order.ID, Order.Date1, Order.Date2, Customer.Name 
FROM Order (Order INNER JOIN Customer ON Order.CustomerID = Customer.ID)"

しかし、コードは私が望んでいた結果をもたらしません。私の質問について助けてください。

4

2 に答える 2

2

更新これで十分です

SELECT q.OrderID, o.Date1, o.Date2, o.CustomerID, c.Name AS CustomerName
  FROM 
(
  (SELECT CustomerID, MIN(ID) AS OrderID 
     FROM [Order] 
    GROUP BY CustomerID
  )  AS q INNER JOIN [Order] AS o
  ON q.OrderID = o.ID
) INNER JOIN Customer AS c
ON o.CustomerID = c.ID

出力:

オーダーID | 日付1 | 日付 2 | 顧客 ID | 顧客名
--------|----------|----------|------------|------ -------
1 | 2013 年 1 月 1 日 | 2012 年 1 月 1 日 | 1 | ジョン
3 | 2013 年 1 月 1 日 | 2013 年 1 月 1 日 | 2 | ティナ
4 | 2013 年 1 月 1 日 | 2012 年 1 月 1 日 | 3 | パトリック

更新:コメントに基づいて、実際のクエリは次のようになります

SELECT q.ID, o.ID_narocila, o.datum_sprejema, o.rok_izdobave, o.status_artikla, o.status_narocila o.ID_stranke, c.naziv
  FROM 
(
  (SELECT ID_stranke, MIN(ID) AS ID
     FROM Narocilo 
    GROUP BY ID_stranke
  )  AS q INNER JOIN Narocilo AS o
  ON q.ID = o.ID
) INNER JOIN Stranke AS c
ON o.ID_stranke = c.ID
于 2013-09-27T23:08:15.103 に答える
0

表示した目的の結果セットから、次のクエリが機能します。

SELECT Min(T2.ID) AS MinOfID, Min(T1.Date1) AS MinOfDate1, Min(T1.Date2) AS MinOfDate2, T1.CustomerID
FROM T2 INNER JOIN T1 ON T2.ID = T1.CustomerID    
GROUP BY T1.CustomerID;
于 2013-09-27T23:16:50.833 に答える