-1

私は2つのテーブルを持っています。

Customer                      |      OrderItems

CustomerID CustomerName       |      OrderItemID OrderID   CustomerID        Status

    1          ABC            |          1          1          1            Started
                                         2          1          1            Started
                              |          3          1          1            NotStarted

ここで、orderItems のステータスが Completed であるすべての顧客のレコードを取得したいと考えています。この場合、注文が不完全であることを意味します。

したがって、未完了の注文のステータスを取得したい場合は、顧客1が注文1であることを確認してください。

アイテムは最初の2つで開始されますが、それでも不完全なものを取得したいです。

4

5 に答える 5

0
select OrderID, CustomerID, 
       SUM(case Status when 'Started' Then 0 Else 1) NS
from OrderItems
having NS > 0;
于 2013-06-21T12:22:35.887 に答える
0
select OrderID, CustomerID, 
       SUM(case Status when 'NotStarted' Then 1 Else 0) NS
from OrderItems
group by OrderID, CustomerID
having NS > 0;
于 2013-06-21T12:09:28.443 に答える
0

不完全な注文のない顧客のみが必要な場合は、これでうまくいくはずです。

SELECT C.CustomerID, C.CustomerName
FROM Customer AS C
WHERE (((C.CustomerID) Not In 
   (SELECT DISTINCT [O].CustomerID
    FROM OrderItems AS O
    WHERE ((([O].Status)="NotStarted")))));

注文に関する情報を含む ORDER テーブルが必要だと思います。1 つのレコードの customerID を変更した場合、OrderItems テーブルのデータに一貫性がなくなります。たとえば、OrderItemID = 3 の場合、clientID は 2 です。同じ注文に対して 2 つの異なるクライアントがありますか? すべての情報を処理したわけではなく Order テーブルがあると思います。

よろしく、

于 2013-06-21T12:42:17.143 に答える