0

Orders、OrderAdditionalInfo、Invoices の 3 つのテーブルがあります。

有効な (またはキャンセルされていない) 請求書がない (メインの) 注文を選択する必要があります。

田畑:

注文 ->

OrderID int(11)

注文追加情報 ->

DetailID int(11)
OrderID int(11)
Variable varchar(255)
Value varchar(255)

請求書 ->

InvoiceID int(11)
OrderID int(11)
Cancelled tinyint(4) //if cancelled is 1 then this invoice is invalid.

重要: すべてを混乱させるのは、1 つの注文が複数の注文に分割される可能性があることです。

例えば:

OrderID: 10 で注文を分割する場合

1- 注文 10 がメインの注文として残り、ID 11 の新しい注文がテーブルに追加されます。(新しい注文を獲得します。)

2- 残念ながら、OrderAdditionalInfo テーブルに行が追加されます。

OrderID: 11
Variable: "Main Order ID"
Value: "10"

3- したがって、次数 11 が次数 10 から派生したことがわかります。

一致する注文の選択について何か提案はありますか:

「主注文」(別の注文から派生したものではない)

「有効な請求書がありません」

4

1 に答える 1

0
select * from orders o where o.OrderId not in (select OrderId from Invoices) and o.OrderId not in (select OrderId from OrderAdditionalInfo oi where oi.Variable = 'Main Order ID')
于 2014-06-20T11:05:42.940 に答える