2017-10-04 8 views
0

特定の日付の前にカスタム列を追加することができ、私は、クエリを持っており、その結果は以下のようなものです:SQL:どのように私は

 
date  From 
----------------------- 
20  Airport 
20  Vehicle 
23  Person 
24  Person 
28  Person 
28  Airport 

私が期待したもの:どうすればよい

 
date  From 
----------------------- 
20  Received From 
20  Airport 
20  Vehicle 
23  Received From 
23  Person 
24  Received From 
24  Person 
28  Received From 
28  Person 
28  Airport 

「受信者」の行を自動的に追加しますか?

+0

を参照してください:[?なぜ私は非常に単純なSQLクエリであることを私には思える何のためMCVEを提供する必要があります](https://meta.stackoverflow.com/questions/333952 /なぜ、私が提供する、何のためのmcve-for-what-to-the-very-simple-sql-query) – Strawberry

+0

どのようなクエリを使用しましたか? – Al1

+2

代わりにプレゼンテーションレイヤーに修正してください。 – jarlh

答えて

1

まず、全ての各date列の値としてReceived Fromを追加し、UNION ALLを使用してこれを実際のテーブルの行を結合します。次にCASEの式を使用して結果を注文するReceived From最初に値を指定します。

クエリ

select t.`date`, t.`From` from(
    select `date`, `From` from `myTable` 
    union all 
    select distinct `date`, 'Received From' from `myTable` 
) t 
order by t.`date`, 
case t.`From` when 'Received From' then 1 else 2 end, t.`From`;