過去のメンバーシップデータと現在のデータの両方を持つ注文テーブルがあります。このデータを1行で表示したい。私は過去のデータの一時テーブルを持っていますが、同じ行に現在のデータを取得するためにこのクエリを書く方法を正確にはわかりません。私はそれがMAX(order no)
と関係があることを知っています。ここでは、一時テーブルを必要としない過去の注文を最も最近の注文で追加するSQLクエリ
set transaction isolation level read uncommitted
declare
@ship_master_customer_id varchar (10), @cycle_begin_date datetime, @cycle_end_date datetime, @OrderNo varchar(10), @Description Char(100)
create table #t1(ShipMasterCustomerID varchar(10), OrderNo varchar (10), cycle_begin_date datetime, cycle_end_date datetime, Description Char(100))
Insert into #t1
Select SHIP_MASTER_CUSTOMER_ID, ORDER_NO, CYCLE_BEGIN_DATE,CYCLE_END_DATE, DESCRIPTION FROM [ORDER_DETAIL]
where SHIP_MASTER_CUSTOMER_ID = '11115555' and
CYCLE_END_DATE = '2/29/2016'
Select * from #t1
Drop table #t1
Here is my script.
declare
@ship_master_customer_id varchar (10), @cycle_begin_date datetime, @cycle_end_date datetime, @OrderNo varchar(10), @Description Char(100)
create table #t2(ShipMasterCustomerID varchar(10), OrderNo varchar (10), cycle_begin_date datetime, cycle_end_date datetime, Description Char(100))
Insert into #t2 (shipmastercustomerid, orderno, cycle_begin_date, cycle_end_date, DESCRIPTION)
VALUES (1111555,9004731815, 2015/01/01, 2015/31/12,'Annual Mem'),
(1111555, 9005148308, 2016/01/01, 2016/31/12,'Annual Mem'),
(1111222, 9005027152, 2015/01/03, 2016/29/02,'Annual Mem'),
(1111222, 9005440369, 2016/01/03, 2017/31/03,'Annual Mem'),
(2223333, 9005027152, 2014/01/01, 2016/31/12,'Annual Mem'),
(2223333, 9005442116, 2016/01/01, 2017/31/12,'Annual Mem')
Select * from #t2
Drop table #t2
ここに注意してください。あなたは注文情報を見ているようですが、コミットされていない読書レベルがあります。無作為に行が見つからない、または行が重複していますか?それは起こりうるし、起こるだろう。正確さが重要な場合は、これを行わないでください。 http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/ –
ここで実際に役立つのは、サンプルデータです。あなたはテーブル変数と一時テーブルを持っています。あなたは一時テーブルへの挿入さえ持っています...しかし、挿入物のソースは持っていないテーブルです。 –
ありがとうございます、今、サンプルをアップロードしようとしています。 – user3117087