-5

我正在修改我之前的场景,我想知道在销售订单中放置的序列详细信息与在交货收据中填写的序列详细信息订单是否正确。下面有三个表,(1)TABLE A - 这是我在执行下面的脚本时的当前输出。(2) 表 B - 由于序列详细信息,我想加入的另一个表(表 B)。(3) TABLE DESIRED 输出 - 我想实现.. 考虑到:如果 basetype = 17,那么它应该在另一列 (SO_SERIAL) 中插入序列
,如果 basetype = 15,那么它应该在另一列 (DR_SERIAL) 中插入序列详细信息。通过这个,我能够分析 SO 中使用的序列与 DR 中使用的不同/相同。

谢谢你的帮助。

select a.CardCode 'BPNAME', c.itemcode, a.DocEntry 'SO_DOCENTRY', a.DocNum 'SO Num', c.ObjType'SO_Btype',
b.docEntry 'DR_DOCENTRY',b.BaseRef 'DR_num',b.ObjType 'dr_type'
from ORDR a 
LEFT join dln1 b on a.docentry = b.baseentry 
left join RDR1 c on a.DocEntry = c.DocEntry

表 A。

BP      ITEMCODE   SO_DOCENTRY   SO_NUM    SO_BTYPE    DR_DOCENTRY    DR_NUM   DR_TYPE
======================================================================================
CITALI  TYB20001M   144900       20152733    17         130775    20152733     15

表 B。

SERIAL               ITEMCODE     BASEENTRY   BASENUM  BASETYPE  QUANTITY    CARDCODE
=====================================================================================
MCWF-12001-20120601  TYB20001M    144900      20152733  17        10.000000   CITALI    
MBAL-13001-20130101  TYB20001M    130775      103073    15        5.000000    CITALI    

期望的输出:

BP      ITEMCODE   SO_NUM    SO_BTYPE   SO_SERIAL            DR_NUM   DR_TYPE     DR_SERIAL
============================================================================================
CITALI  TYB20001M  20152733   17         MCWF-12001-20120601  20152733  15    AL-13001-20130101
4

3 回答 3

0

通过这个,我能够分析 SO 中使用的序列与 DR 中使用的不同/相同。

要将 so 条目与 dr 条目匹配,您可以将表 b 加入两次,第一次采用“so”条目,然后第二次采用“dr”条目。所以你会得到“header”、“SoEntry”、“DrEntry”。然后你可以比较它们。举这个例子

select t1.BP, t1.ITEMCODE, t21.Serial as SO_SERIAL, t22.SERIAL as DR_Serial
FROM table1 t1
LEFT JOIN table2 t21 on t21.ITEMCODE=t1.ITEMCODE and t21.BASETYPE=17
LEFT JOIN table2 t22 on t22.ITEMCODE=t1.ITEMCODE and t22.BASETYPE=15
于 2013-04-11T11:00:00.903 回答
0

我看到了你的问题。你需要加入itemcodeBASETYPE。所以试试这个:

select A.BP
     , A.ITEMCODE
     , A.SO_NUM
     , A.SO_BTYPE
     , B.serial as SO_SERIAL
     , A.DR_NUM
     , A.DR_TYPE
     , A.DR_SERIAL
from a 
join b on a.itemcode = b.itemcode and a.so_btype = b.basetype
于 2013-04-11T11:27:40.253 回答
0

您需要学习基本的连接。
绝对你将不得不加入这两个表。
这是一个很好的链接,您可以从这里开始
http://www.w3schools.com/sql/sql_join.asp
https://stackoverflow.com/questions/7877720/the-best-tutorial-on-joins-in- mysql

于 2013-04-11T11:01:21.457 回答