Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询从AS/400服务器返回重复项_Sql_Ibm Midrange_Db2 400 - Fatal编程技术网

SQL查询从AS/400服务器返回重复项

SQL查询从AS/400服务器返回重复项,sql,ibm-midrange,db2-400,Sql,Ibm Midrange,Db2 400,如果我只查询主表oIndlid,我将只得到一半的行 即使执行此查询/400也会返回重复项,我如何解决此问题 SELECT T01.IDORD#, T01.IDDOCD, T01.IDPRT#, T01.IDSHP#, T01.IDNTU$, (IDNTU$*(IDSHP#)) AS LINTOT, T02.IAPTWT, T02.IARCC3, T03.MHSTAT, T03.MHZONR, T03.MHSHIN, T01.IDORDT, T01.IDHCD3 FRO

如果我只查询主表oIndlid,我将只得到一半的行

即使执行此查询/400也会返回重复项,我如何解决此问题

SELECT T01.IDORD#, T01.IDDOCD, T01.IDPRT#, T01.IDSHP#, T01.IDNTU$,
       (IDNTU$*(IDSHP#)) AS LINTOT, T02.IAPTWT, T02.IARCC3, T03.MHSTAT, T03.MHZONR,
       T03.MHSHIN, T01.IDORDT, T01.IDHCD3
FROM ASTDTA.OEINDLID T01 INNER JOIN
     ASTDTA.ICPRTMIA T02 
     ON T01.IDPRT# = T02.IAPRT# INNER JOIN
     astdta.MFHHMHPK T03
     ON T01.IDORD# = T03.MHORDP
WHERE  IDHCD3 in ('MDL','TRP')  
所需数据如下:

 322.05000000     04662926     RTR   US-LUCU810                   19.00          16.950000   
    .00000000     04662926     RTR   ENUSLUCU810                  19.00            .000000   
    .00000000     04662926     RTR   EXTRA CHAR CHG                1.00            .000000   
 284.05000000     04662926     RTR   US-LUCU79                    19.00          14.950000   
    .00000000     04662926     RTR   ENUSLUCU79                   19.00            .000000   
   4.75000000     04662926     RTR   EXTRA CHAR CHG               19.00            .250000   
  47.50000000-    04662926     RTR   DISCLU                       19.00           2.500000-  
  28.50000000-    04662926     RTR   DISCLU                       19.00           1.500000-  
 454.75000000-    04662926     RTR   DISCEN                        1.00         454.750000-  
  49.90000000     04662926     RTR   FRTTRP                        1.00          49.900000   
 297.50000000     04662926     RTR   US-DGBB1                    250.00           1.190000   
 162.50000000     04662926     RTR   CRDGBOX                     250.00            .650000   
 125.00000000     04662926     RTR   ENGDGT                      250.00            .500000   
 175.00000000     04662926     RTR   EXTRA CHAR CHG            1,750.00            .100000   
 297.50000000     04662926     RTR   US-DGBB1                    250.00           1.190000   
 162.50000000     04662926     RTR   CRDGBOX                     250.00            .650000   
 125.00000000     04662926     RTR   ENGDGT                      250.00            .500000   
 275.00000000     04662926     RTR   EXTRA CHAR CHG    2,750.00            .100000                            


  50.00000000-    04662926     RTR   DISCMD                      500.00            .100000-  
  50.00000000-    04662926     RTR   DISCMD                      500.00            .100000-  
 622.50000000     04662926     RTR   US-CM08RG                   250.00           2.490000   
 100.00000000     04662926     RTR   RIWRWB                      250.00            .400000   
 125.00000000     04662926     RTR   ENMD24BLK                   250.00            .500000   
    .00000000     04662926     RTR   EXENGMD                       1.00            .000000   
  75.00000000-    04662926     RTR   DISCMD                      250.00            .300000-  
 135.30000000     04662926     RTR   FRTMDL                        1.00         135.300000   
但是当我们加入连接时,我们需要零件数据、重量等,然后是运输数据 我们得到这个:

 04662926    20,140,116   CRDGBOX                     250.00            .650000                       162.50000000          .02000
 04662926    20,140,116   CRDGBOX                     250.00            .650000                       162.50000000          .02000
 04662926    20,140,116   CRDGBOX                     250.00            .650000                       162.50000000          .02000
 04662926    20,140,116   CRDGBOX                     250.00            .650000                       162.50000000          .02000
您可以在零件CRDGBOX的示例中看到,我们上面有2个,但一旦我们有了内部连接,这里有4个。

尝试选择不同的:

INNER JOIN (SELECT DISTINCT
               MHORDP, MHSTAT, MHZONR, MHSHIN
             FROM ASTDTA.MFHHMHPK) AS T03 ON T01.IDORD# = T03.MHORDP 

您的联接可能正在创建重复的行。您没有提供足够的信息来说明更多内容。需要告诉您什么?提供示例数据、结果和所需结果。第一个表包含订单信息。第二个是零件信息,我们只想得到零件重量和cat代码。然后在第三个表中,我们得到一些装运数据。看起来这些连接占用了额外的一行,但是为什么在这个过程中可能会成为某种顺序,相同的部分会列出两次。或者订单本身分多个部分装运。