这是Datagridview,我需要像这样在屏幕上显示.
(Datagrid视图与“主表”(RECEIVE_PLAN)绑定)
概念设计数据库:
如果您想将某些东西导入仓库,您必须计划在一天内接收.
收货计划直接来自“采购订单”
或者有时您的仓库在订购前有接收时间表.
数据库有三个表,包括表A和表B以及主表.
他们有这样的关系.
注意:主表有两个选项可用于获取显示在屏幕上的值
>直接从A表(PURCHASE ORDER表)中获取“PO_LIST_NO”和“PO_NO”.
>从B表(RECEIVE SCHEDULE表)获取“PO_LIST_NO”和“PO_NO”,然后从A表中获取值.
重要条件
>在主表(RECEIVE PLAN)中必须具有“PO_ID”或“RS_ID”中的值
>如果主表(RECEIVE PLAN)在PO_ID列具有值,则RS_ID列必须为NULL.
另一方面,如果主表(RECEIVE PLAN)的值为
RS_ID列,PO_ID列必须为NULL
>主表(RECEIVE PLAN)不能为PO_ID和RS_ID都为NULL
>主表(RECEIVE PLAN)的PO_ID和RS_ID都不能有值
RECEIVE PLAN的例子如下.
(PO_TRAN_ID)是PO_ID
在这种情况下,(RS_TRAN_ID)是RS_ID.
问题:如何查询从表A或B获取值?
如何在主表,A和B表之间进行连接以进行显示.
这个datagridview属性.
BindingSource:主表(RECEIVE_PLAN)
“PO LIST NO”栏:从A表(PURCHASE_ORDER)获取
“PO NO”栏:从A表(PURCHASE_ORDER)获取
“计划数量”专栏:从主表(接收计划)获取
最佳答案 像这样的东西?
SELECT A_TABLE.PO_LIST_NO, A_TABLE.PO_NO, SUM(MAIN_TABLE.PLAN_QTY) FROM A_TABLE
INNER JOIN B_TABLE ON A_TABLE.PO_ID = B_TABLE.PO_ID
INNER JOIN MAIN_TABLE ON MAIN_TABLE.PO_ID = B_TABLE.PO_ID OR MAIN_TABLE.RS_ID = B_TABLE.RS_ID
WHERE (MAIN_TABLE.RS_ID IS NOT NULL OR MAIN_TABLE.PO_ID IS NOT NULL) AND NOT (MAIN_TABLE.RS_ID IS NOT NULL AND MAIN_TABLE.PO_ID IS NOT NULL)
GROUP BY A_TABLE.PO_LIST_NO, A_TABLE.PO_NO