2017-06-27 4 views
0

私は製品テーブルを持っています。selectとunionを使用して新しい列を挿入する

私は(私は、出力結果に表示しない)ヶ月と結合して、次のように発注日に基づいて出力を与える必要が
Create Table tblProduct 
(
    ID int, 
    Project_No int, 
    OrderDate date 
) 

insert into tblProduct values (2580, 100, '2012-01-13') 
insert into tblProduct values (2581, 101, '2012-01-21') 
insert into tblProduct values (2582, 102, '2012-03-04') 
insert into tblProduct values (2583, 103, '2012-02-14') 

Jan 2580 100 
Feb 2581 101 
Mar 2582 102 

しかし、私はしないでください月に別のテーブルを持っています。

だから、私が望むことを達成するためにSELECT.....UNION ALLを使用しなければならないと思います。

しかし、私はどのように使用するのか分かりません。誰かがこれにいくつかの光を当てることができますか?

+0

あなたのテーブルの行に月割り当てるための基準は何ですか? – danielsepulvedab

+0

これはどのRDBMSですか? MySQL、PostgreSQL、Oracle、SQL Server、IBM DB2などを使用しているかどうかにかかわらず、多くの場合違いがあります。あなたの質問に関連タグを追加してください! –

+0

@danielsepulvedab、それは注文日に基づいて結合する必要があります。条件を省略して単純に参加できますか? – NewBie

答えて

1

ちょうど使用:

SELECT 
    DATENAME(month, OrderDate), ID, Project_No 
FROM tblProduct 
+0

ありがとう@danielsepulvedab他にもUNION ALLで使用できる方法はありますか?私は参加する基準がなく、tblProductに月( 'Jan'、 'Feb'など)を組み合わせるだけで、それらのキーワードを使用する必要がありますか? – NewBie

+1

'UNION ALL'は、同じ構造体を持つ行を結果セットに追加する必要がある場合に使用されますが、そうではありません。 – danielsepulvedab

0

私の事はあなたがUNION ALL演算子を使用せずに所望の出力を得ることができます。

は私のSSMS2014

create table tblProduct(
    ID int, 
    Project_No int, 
    OrderDate datetime 
) 

insert into tblProduct 
values 
(2581,100,'2012-01-13'), 
(2581,101,'2012-01-21'), 
(2582,102,'2012-03-04'), 
(2583,103,'2012-02-14') 

select * from tblProduct 

enter image description here

select 
    LEFT(DATENAME(month,OrderDate),3) as DateColumn, 
    ID, 
    Project_No 
from tblProduct 

enter image description here

もっと読書あなたの助けについてDATENAME

+0

参加する特定の基準がない場合は、SELECT ... UNION ALLキーワードを使用できますか?ちょうど「Jan | 2580 | 100、など... '? – NewBie

0

みんなありがとうにクエリを実行しました。私は最終的にそれを理解し、私が望むものを正確に達成しました。

SELECT '1'As Mnth, ID as ProductID,Project_No,OrderDate 
from T2 
where month(OrderDate)=1 
UNION 
select '2'As Mnth, ID as ProductID,Project_No,OrderDate 
from T2 
where month(OrderDate) =2 
UNION 
select '3'As Mnth, ID as ProductID,Project_No,OrderDate 
from T2 
where month(OrderDate) =3 
UNION 
select '4'As Mnth, ID as ProductID,Project_No,OrderDate 
from T2 
where month(OrderDate) =4 

ここでは、月ごとに別のテーブルを作成する必要はなく、結果を得るために事前に作成するテーブルは必要ありません。

Results

関連する問題