MYSQL查询待处理的“采购订单”

时间:2015-08-28 05:07:34

标签: mysql database

如何查询数据库以获取待定的po列表。

我有四个表purchase_order与此字段

`po_id` // primary key
`supplier_id`
'date`
`status`
'description`

`po_detail` with this fields
`pod_id` // primary key
`po_id`
`product_id`
`rate`
`qty`

`grn` with this fields
`grn_id` // primary key
`date`
`description`
`supplier_id`

`grn_detail` with this fields
`grnd_id` // primary key
`grn_id`
`rate`
`qty`
`product_id`
`po_id`

现在我选择po_detail中未输入grn_detail的所有产品po_id或输入grn_detail,但grn_detail.qty &lt; < / strong> po_detail.qty具有相同的po_id 你能不能写一下这个问题。 如果可能请在sqlfiddle中使用demo进行编写

请查看SQLFIDDLE

2 个答案:

答案 0 :(得分:1)

第一个答案很好,但我认为运营商可能没有什么变化。 类似&gt; =

的东西

SEE DEMO

SELECT * FROM `po_detail`
WHERE
  `po_detail`.`po_id` NOT IN
    (SELECT `grn_detail`.`po_id` FROM `grn_detail`
     WHERE (`grn_detail`.`po_id` <> `po_detail`.`po_id`) OR
       (`grn_detail`.`qty` >= `po_detail`.`qty`))
AND your_other_filter_if_you_want_to

答案 1 :(得分:0)

试试这个:

SELECT * FROM `po_detail`
WHERE
  `po_detail`.`po_id` NOT IN
    (SELECT `grn_detail`.`po_id` FROM `grn_detail`
     WHERE (`grn_detail`.`po_id` <> `po_detail`.`po_id`) OR
           (`grn_detail`.`qty` > `po_detail`.`qty`))