2016-05-27 8 views
0
下記の内側の間にいくつかのエラーをしているSQLクエリは、一部の参加

で参加し、これはエラーメッセージです:あなたは、あなたのSQL構文でエラーが発生している構文エラーは、2つの選択ステートメント

。 が近く を使用する権利構文についてはMySQLサーバのバージョンに対応していること取扱説明書を確認し「INNERとして参加(STOCK.WAREHOUSE_MVT_LINE mvtLn INNER FROM SERIAL_NOをSELECT」行3

SELECT 
    wm.CID, 
    wm.DOC_ID, 
    wm.DOC_TYPE, 
    wml.SERIAL_NO, 
    wml.WH_MVT_NO, 
    wm.PROD_ID, 
    wm.LOT_CODE, 
    wm.WH_CODE, 
    wm.BIN_CODE, 
    wml.MVT_DATE, 
    wm.BATCH_NO, 
    wm.MVT_TYPE, 
    wm.PROD_NAME, 
    wm.COMMENT, 
    wm.REMARK, 
    wm.NOTE, 
    wm.INSTRUCTION 
FROM 
    STOCK.WAREHOUSE_MVT_LINE wml 
INNER JOIN 
    STOCK.WAREHOUSE_MVT wm 
    ON wml.CID=wm.CID 
    AND wml.WH_MVT_NO=wm.WH_MVT_NO 
WHERE 
    wml.CID = 70200009 
    AND (
    wm.MVT_TYPE != 'TFOUT' 
    AND wm.MVT_TYPE != '3TFOUT' 
)  
    AND wml.SERIAL_NO IN (
    (
     SELECT 
     SERIAL_NO 
     FROM 
     STOCK.WAREHOUSE_MVT_LINE mvtLn 
     INNER JOIN 
     STOCK.WAREHOUSE_MVT mvt 
      ON mvtLn.CID = mvt.CID 
      AND mvtLn.PFC_CODE = mvt.PFC_CODE 
      AND mvtLn.WH_MVT_NO = mvt.WH_MVT_NO 
     where 
     mvtLn.CID = 70200009 
     AND mvtLn.PFC_CODE ='SG' 
     AND mvtLn.MVT_DATE >= '2016-04-01 00:00:00.0' 
     AND mvtLn.MVT_DATE <='2016-06-30 00:00:00.0' 
     AND mvt.WH_CODE = 'IDJKT' 
     AND mvt.BIN_CODE = 'IMP' 
    )AS a  
    INNER JOIN 
    (
     SELECT 
     SERIAL_NO 
     FROM 
     STOCK.WAREHOUSE_MVT_LINE mvtLn 
     INNER JOIN 
     STOCK.WAREHOUSE_MVT mvt 
      ON mvtLn.CID = mvt.CID 
      AND mvtLn.PFC_CODE = mvt.PFC_CODE 
      AND mvtLn.WH_MVT_NO = mvt.WH_MVT_NO 
     where 
     mvtLn.CID = 70200009 
     AND mvtLn.PFC_CODE ='SG' 
     AND mvtLn.MVT_DATE >= '2016-01-01 00:00:00.0' 
     AND mvtLn.MVT_DATE <='2016-03-31 00:00:00.0' 
     AND mvt.WH_CODE = 'CL' 
     AND mvt.BIN_CODE = 'PSADEPOT' 
    )AS b 
     ON a.SERIAL_NO = b.SERIAL_NO 
    ) 
    AND wm.MVT_DATE BETWEEN '2016-01-01 00:00:00.0' AND '2016-06-30 00:00:00.0' 
ORDER BY 
    wml.SERIAL_NO, 
    wml.MVT_DATE 
+0

です。デバッグには絶望的です。デバッグに欠かせない部分を削除して簡略化してみてください。 – userlond

答えて

0

であなたがしたいですかこれは

SELECT wm.CID, wm.DOC_ID, wm.DOC_TYPE, wml.SERIAL_NO, wml.WH_MVT_NO 
    , wm.PROD_ID, wm.LOT_CODE, wm.WH_CODE, wm.BIN_CODE, wml.MVT_DATE 
    , wm.BATCH_NO, wm.MVT_TYPE, wm.PROD_NAME, wm.COMMENT, wm.REMARK 
    , wm.NOTE, wm.INSTRUCTION 
FROM STOCK.WAREHOUSE_MVT_LINE wml INNER JOIN STOCK.WAREHOUSE_MVT wm ON wml.CID = wm.CID 
AND wml.WH_MVT_NO = wm.WH_MVT_NO 
WHERE wml.CID = 70200009 
    AND wm.MVT_TYPE != 'TFOUT' 
    AND wm.MVT_TYPE != '3TFOUT' 
    AND wml.SERIAL_NO IN (
      SELECT a.SERIAL_NO FROM -- You missed this. I thought.... 
      (
       SELECT SERIAL_NO 
       FROM STOCK.WAREHOUSE_MVT_LINE mvtLn 
       INNER JOIN STOCK.WAREHOUSE_MVT mvt 
       ON mvtLn.CID = mvt.CID 
       AND mvtLn.PFC_CODE = mvt.PFC_CODE 
       AND mvtLn.WH_MVT_NO = mvt.WH_MVT_NO 
       WHERE mvtLn.CID = 70200009 
       AND mvtLn.PFC_CODE = 'SG' 
       AND mvtLn.MVT_DATE >= '2016-04-01 00:00:00.0' 
       AND mvtLn.MVT_DATE <= '2016-06-30 00:00:00.0' 
       AND mvt.WH_CODE = 'IDJKT' 
       AND mvt.BIN_CODE = 'IMP' 
      ) a 
      INNER JOIN (
       SELECT SERIAL_NO 
       FROM STOCK.WAREHOUSE_MVT_LINE mvtLn 
       INNER JOIN STOCK.WAREHOUSE_MVT mvt 
       ON mvtLn.CID = mvt.CID 
       AND mvtLn.PFC_CODE = mvt.PFC_CODE 
       AND mvtLn.WH_MVT_NO = mvt.WH_MVT_NO 
       WHERE mvtLn.CID = 70200009 
       AND mvtLn.PFC_CODE = 'SG' 
       AND mvtLn.MVT_DATE >= '2016-01-01 00:00:00.0' 
       AND mvtLn.MVT_DATE <= '2016-03-31 00:00:00.0' 
       AND mvt.WH_CODE = 'CL' 
       AND mvt.BIN_CODE = 'PSADEPOT' 
      ) b ON a.SERIAL_NO = b.SERIAL_NO) 
    AND wm.MVT_DATE BETWEEN '2016-01-01 00:00:00.0' AND '2016-06-30 00:00:00.0' 
ORDER BY wml.SERIAL_NO, wml.MVT_DATE 
+0

ええ私はその部分を欠場しますが、serial_noはあいまいなエラーですし、2つのselect文の外側に括弧を入れて、それをcとc.SERIAL_NOに設定した後に文法エラーが発生しました – user3484436

+0

'serial_noはあいまいなエラーです'。もう一度それを確認してください。 – Blank

+0

私はただシリアル番号を唯一のものから内部の結合後ではないと恐れています – user3484436

関連する問題