2017-09-12 7 views
-1

これはフォーラムの最初の質問ですが、問題を解決するのに時間がかかりすぎます。複数の値に基づいて複数の行を選択しますが、1つの条件に基づいて複数の行を選択してください

説明:サンプルで

コストコード「C」は、他のラインは、リストに含まれるべきである範囲内にある場合。

INVOICE|VEHICLE|JOB_DATE|COSTCODE|TOTAL| 
2017001|UNIT001|01012017| A | 100| - OK 
2017001|UNIT001|01012017| C | 100| - OK 
2017001|UNIT002|01012017| A | 100| - FALSE 
2017001|UNIT002|01012017| B | 100| - FALSE 
2017001|UNIT003|01012017| A | 100| - OK 
2017001|UNIT003|01012017| C | 100| - OK 
2017022|UNIT001|22012017| A | 100| - OK 
2017022|UNIT001|22012017| C | 100| - OK 
2017022|UNIT004|22012017| A | 100| - FALSE 
2017022|UNIT004|22012017| B | 100| - FALSE 

Expected result: 
INVOICE|VEHICLE|JOB_DATE|COSTCODE|TOTAL| 
2017001|UNIT001|01012017| A | 100| 
2017001|UNIT001|01012017| C | 100| 
2017001|UNIT003|01012017| A | 100| 
2017001|UNIT003|01012017| C | 100| 
2017022|UNIT001|22012017| A | 100| 
2017022|UNIT001|22012017| C | 100| 

一意の値が、ラインが「請求書、自動車、JOBDATE AND Costcode = 『C』」を有する場合、それは "請求書のすべての行を表示する必要があり、その後、「請求書、自動車、JOBDATE」の組み合わせであります車両、仕事日 "コストコード" C "を含む行に等しい

この説明が私の以前のものより少し良いと思う。

テーブル名がある:特定のユニットから

SELECT INVOICE_KEY_FW,VEHICLE_ID_FW,JOB_DATE_FW,COSTCODE_FW,TOTAL_NETT_FW, 
FROM PURCHASE_INVOICE_DETAILS_FW 
WHERE 

コストがコストコードに分割し(インボイスごとに)特定のユニットに特定の日に行われます。 請求書にユニットを2回置くことができますが、同じ日に決済することはできません。 費用コード(この場合「C」)が請求書に記載されている場合、同じ職務日付と同じ車両IDを持つすべての請求書行が、期待される結果に含まれている必要があります。

+2

質問が不明です。 – Amit

+1

@Amitあなたは疑問符を外した可能性があります:-) –

+0

ここでは、ほとんどの人が画像ではなく書式付きのテキストを必要としています。 (さらに悪いことに、画像へのリンク) – jarlh

答えて

1

私にはSQLエディタはありませんが、これはうまくいくはずです。

select INVOICE_NUMBER, UNITNUMBER, DATE, COST_CODE, COSTS 
from INVOICE_DETAILS 
where UNIT_NUMBER in (select distinct UNIT_NUMBER 
         from INVOICE_DETAILS 
         WHERE COST_CODE = 'C') 

もっと良い方法があると思いますが、前に試してみるべきです。

+0

いくつか言及したように、私は(私が試した)より良い説明が必要ですが、あなたが言及したコードはうまくいきませんでした。しかし、それは私が推測する説明の欠如のためです。 – Roy

+0

私はまだ理解していないことです:あなたはユニークなは "請求書、車両、Jobdate"と言うが、あなたのテーブルでは一意ではありません。より一貫したデータを提供してください、私は助けることができると思います。私が理解したことは、あなたがCを持つ車両を持っているすべての列を表示したいということです...そうですか? – marco

+0

私たちには、1ジョブあたりの費用が多い請求書があります。仕事とは、Vehicle IdとJobdate(請求書ごと)の組み合わせです。特定の種類の原価が予約されている仕事(「C」)では、すべての費用が関連していることがわかります。持っていないジョブ(「C」)があるときは、これをリストに載せたくありません。 – Roy