我正在修改我之前的情况,我想知道SALES ORDER中的序列详细信息与交付收据中填写的序列详细信息顺序如果正确的话。下面有三个表,(1)表A - 这是我执行下面脚本时的当前输出。 (2)表B - 由于序列细节,我想要加入的另一个表(表B)。 (3)表所需的输出 - 我想要实现..考虑: 如果basetype = 17那么它应该在另一列(SO_SERIAL)中插入序列号 如果basetype = 15,那么它应该在另一个coloumn(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
答案 0 :(得分:0)
通过这种方式,我能够分析SO中使用的序列与DR中使用的序列不同/相同。
要匹配带有dr条目的条目,您可以将表b加入两次,第一次参加'so'条目,然后第二次参加'dr'条目。所以你会得到“标题”,“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
答案 1 :(得分:0)
您需要学习基本联接
你肯定必须加入这两张表。
这是一个很好的链接,你可以从哪里开始
http://www.w3schools.com/sql/sql_join.asp
https://stackoverflow.com/questions/7877720/the-best-tutorial-on-joins-in-mysql
答案 2 :(得分:0)
我看到了你的问题。您需要加入itemcode
和BASETYPE
。
所以试试这个:
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