1

我通过 Visual Basic 访问数据库时遇到问题。可以说我有两张桌子,如下所示。

+-------+-------------+-------------+------------+
| 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

输出:

订单号 | 日期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 回答