2013-04-05 179 views
2

我需要从likp中选择vbeln,并且我只需要选择vbuk中标记为'C'的vbeln。并从该likp-vbeln(交付)我必须搜索/选择它的载体在vekp和搜索载体后,我必须搜索/从另一个表中选择它的shiptype。我有7个字段的表,在下面的代码中选择一些交付,但我不知道如何在vbuk表中添加条件,因为我不需要从vbuk中选择。谢谢。代码如下:在4个条件中选择条件

SELECT likp~vbeln 
    tab~shiptype 
    vekp~carrier 
    vekp~service 
    COUNT(DISTINCT vekp~shipment) 
    SUM(vekp~packagecount) 
    SUM(vekp~rate) FROM vekp 
    INNER JOIN tab 
    ON tab~carrier = vekp~carrier INNER JOIN likp 
    ON vekp~delivery = likp~vbeln INTO itab 
    WHERE likp~erdat IN so_date AND 
     vekp~delivery = likp~vbeln AND 
     vekp~carrier = tab~code 
     GROUP BY vbeln shiptype carrier service. 

回答

1

您不需要从表中选择要加入它,只需将VBUK添加到您的联接。

我注意到你没有包含INTO子句,当你使用一个字段列表的时候需要这个子句。

喜欢的东西:

SELECT likp~vbeln 
tab~shiptype 
vekp~carrier 
vekp~service 
COUNT(DISTINCT vekp~shipment) 
SUM(vekp~packagecount) 
SUM(vekp~rate) 
INTO (field1, fied2, etc)     "<=== Change1 
FROM vekp 
INNER JOIN tab 
    ON tab~carrier = vekp~carrier INNER JOIN likp 
    ON vekp~delivery = likp~vbeln INTO itab 
INNER JOIN VBUK        "<=== Change2 
    ON likp~vbeln = vbuk~vbeln 
WHERE likp~erdat IN so_date AND 
    vekp~delivery = likp~vbeln AND 
    vekp~carrier = tab~code AND 
    vbuk~fieldtocheck = 'C'     "<=== Change3 
GROUP BY vbeln shiptype carrier service. 
+0

感谢ESTI先生!我只是改变了一点,但它的工作!非常感谢! :d – 2013-04-07 04:43:41