2017-09-26 9 views
-2

Bellowは私のmysqlテーブル構造であり、最後のテーブル形式のような結果が欲しいです。 このSQLクエリーまたはソリューションに関して私に教えてください。Sqlグループはすべてのフィールドを個別に結合します

私はいくつかのグループや注文のクエリを試みますが、それを見ていない。

tbl_id sub_id num1 num2 date 
    2  6 100  0 2017-09-21 
    3  6  0 1000 2017-09-20 

実は私はあなたの質問は本当に明確ではない

sub_id num1 num1-date num2 num2-date 
    6 100 2017-09-21 1000 2017-09-20 
+1

質問は明確ではないか、テーブル構造が正しく設計されていないと思います。あなたの構造を簡単に説明できますか? – Jack

+0

利用可能な情報に基づいて、これは不可能です。 – cwallenpoole

+0

他の解決方法はありますか? –

答えて

0

例えば:

SELECT x.sub_id 
    , MAX(x.num1) num1 
    , MAX(CASE WHEN x.num1 <> 0 THEN x.date END) num1_date 
    , MAX(x.num2) num2 
    , MAX(CASE WHEN x.num2 <> 0 THEN x.date END) num2_date 
    FROM my_table x 
GROUP 
    BY x.sub_id; 

しかし、一般的に、私はそれがアプリケーションコードにこのようなデータ表示の問題を解決するのが最善だと思います。

0

をしたいです。

私が理解から、ここにあなたが試みることができるものです:

SELECT sub_id,num1,date AS num1-date FROM yourtable 
INNER JOIN (SELECT num2, date AS num2-date from yourtable WHERE num2>0) USING(sub_id) 
WHERE num1>0; 

これは、各sub_idは陽性でNUM2とdate2の正NUM1と日付1に参加します。

この解決策では、正のnum1のエントリが1つのみ、各sub_idの正のnum2のエントリが1つあることを前提としています。

+0

エラーを取得中:#1248 - すべての派生テーブルには別のエイリアスが必要です –

関連する問題