-5

以前のシナリオを修正しています。SALES ORDER に配置されたシリアルの詳細と、DELIVERY RECEIPTS に記入されたシリアルの詳細の注文が正しければ知りたいです。以下に 3 つのテーブルがあります。(1)テーブル A - これは、以下のスクリプトを実行したときの現在の出力です。(2) TABLE B - シリアルの詳細のために結合したい別のテーブル (TABLE 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

基本的な結合を学ぶ必要があります。
間違いなく、これら 2 つのテーブルに参加する必要があります。これは、 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 に答える
0

これにより、SOで使用されているシリアルとDRで使用されているシリアルが異なる/同じであることが分析できました。

so エントリを dr エントリと一致させるには、テーブル b に 2 回参加できます。最初は「so」エントリを取得し、2 回目は「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 に答える