2016-11-07 63 views
-1

我已經表Orders_Header,Order_Sequence,與value.I Orders_Samples想從3個表獲得獨特的價值:我如何在最小行中獲得DISTINCT值? SQL

我有一排Orders_Header:

enter image description here

我有Orders_Sequence 2行: enter image description here

我有4分排在Orders_Samples:

enter image description here

我的SQL代碼是:

SELECT orders_header.plant, 
     orders_header.shortyear, 
     orders_header.orderno, 
     orders_header.orderdate, 
     orders_header.closingdate, 
     orders_header.requester, 
     orders_header.projectnumber, 
     orders_header.costcenter, 
     orders_header.batchnumber, 
     orders_header.partname, 
     orders_header.partnumber, 
     orders_header.costcategory, 
     orders_header.status, 
     orders_header.overallproductrating, 
     orders_sequence.activitynumber, 
     orders_sequence.dimension, 
     orders_sequence.description, 
     orders_sequence.activityname, 
     orders_sequence.activityresource, 
     orders_sequence.requirementnom, 
     orders_sequence.requirementplus, 
     orders_sequence.requirementminus, 
     orders_sequence.units, 
     orders_samples.samplenumber, 
     orders_samples.samplevalue 
FROM orders_header 
     INNER JOIN orders_sequence 
       ON orders_header.orderid = orders_sequence.orderid 
     INNER JOIN orders_samples 
       ON orders_samples.orderid = orders_sequence.orderid 
WHERE (orders_header.orderno = 79148) 
     AND (orders_header.shortyear = 16) 

爲什麼我得到的4 8行istead,我想唯一行。我有4行Orders_Samples我想在最後4行與所有日期。

我嘗試用不同的但不工作

注*我試着用不同的,但不工作

感謝

+0

8行是否以任何方式重複? (如4組2)如果沒有連接或合併樣本和序列,那麼您可能獲得(1x2x4)。 – StingyJack

+0

查詢的輸出應該解釋什麼?像「這是這個訂單的最後一個樣品和序列?」 – StingyJack

回答

0

如何:

select orders_header.plant, ... 

FROM orders_header 

inner join (select distinct orderid from orders_sequence) ord_sequence 
on orders_header.orderid = ord_sequence.orderid 
inner join orders_samples ON orders_samples.orderid = ord_sequence.orderid 
+0

Nop,不起作用,數據綁定所有列 – Vladut

0

試試這個,

SELECT orders_header.plant, 
    orders_header.shortyear, 
    orders_header.orderno, 
    orders_header.orderdate, 
    orders_header.closingdate, 
    orders_header.requester, 
    orders_header.projectnumber, 
    orders_header.costcenter, 
    orders_header.batchnumber, 
    orders_header.partname, 
    orders_header.partnumber, 
    orders_header.costcategory, 
    orders_header.status, 
    orders_header.overallproductrating, 
    orders_sequence.activitynumber, 
    orders_sequence.dimension, 
    orders_sequence.description, 
    orders_sequence.activityname, 
    orders_sequence.activityresource, 
    orders_sequence.requirementnom, 
    orders_sequence.requirementplus, 
    orders_sequence.requirementminus, 
    orders_sequence.units, 
    orders_samples.samplenumber, 
    orders_samples.samplevalue 
FROM orders_samples 
    LEFT JOIN orders_sequence 
      ON orders_samples.orderid = orders_sequence.orderid 
    LEFT JOIN orders_header 
      ON orders_header.orderid = orders_sequence.orderid 
WHERE (orders_header.orderno = 79148) 
    AND (orders_header.shortyear = 16) 
+0

Nop,不起作用,相同的值 – Vladut

0

從此最小查詢開始並添加字段,直至找到導致重複的字段。

SELECT 
    oh.order_id 
    osam.samplenumber, 
    osam.samplevalue, 
    oseq.activitynumber 
FROM orders_samples osam 
    INNER JOIN orders_header oh 
    ON osam.order_id = oh.order_id 
    LEFT JOIN orders_sequence oseq 
    ON oh.order_id = oseq.order_id 
WHERE (oh.orderno = 79148) 
AND (oh.shortyear = 16) 
+0

Nop,同樣,我給8行 – Vladut

相關問題