0

私は2つのテーブルを持っていました.1つはリストテーブルで、ここにテーブルのデータ型があります

create table List(
   CustNo Int,
   NoOverDue money,
   OverDue1 money,
   OverDue2 money,
   OverDue3 money,
   OverDue4 money
)

およびテーブル呼び出し tablecost

create table tablecost(
    custno int,
    cost money,
    DueDate datetime,
    ListDate datetime
)

私のテーブルにはデータが多すぎるので、質問をより速く解決するためにいくつかのデータ列を作成します。

insert into tablecost values (1,100,'20130812','20130712')
insert into tablecost values (2,100,'20130612','20130712')
insert into tablecost values (3,100,'20130512','20130712') 
insert into tablecost values (4,100,'20130412','20130712') 
insert into tablecost values (5,100,'20130312','20130712') 
insert into tablecost values (6,100,'20130112','20130712') 

List目的は、次のテーブルに挿入することです。

期限が過ぎていない場合は、nooverdue に挿入されます。

1 日から 30 日の期限が過ぎている場合は、期限切れ 1 に挿入されます。

31 日から 60 日の期限が過ぎている場合は、期限切れ 2 に挿入されます。

61 日から 90 日の期限が過ぎている場合は、期限切れ 3 に挿入されます。

91 日から 120 日以内の期限が過ぎている場合は、期限切れ 4 に挿入されます。

これは私がクエリで試したもので、正常に動作します:

insert into List (CustNo, NoOverDue)
select CustNo,Cost from TableCost
where  DueDate > GetDate() 
and convert(varchar(8),ListDate,112) between '20130711' and '20130713'

insert into List (CustNo, OverDue1)
select CustNo,Cost from TableCost
where  DueDate between DateAdd(Day,-30,GetDate()) and DateAdd(Day,-1,GetDate()) 
and convert(varchar(8),ListDate,112) between '20130711' and '20130713'

insert into List (CustNo, OverDue2)
select CustNo,Cost from TableCost
where  DueDate between DateAdd(Day,-60,GetDate()) and DateAdd(Day,-31,GetDate())
and convert(varchar(8),ListDate,112) between '20130711' and '20130713'

insert into List (CustNo, OverDue3)
select CustNo,Cost from TableCost
where  DueDate between DateAdd(Day,-90,GetDate()) and DateAdd(Day,-61,GetDate()) 
and convert(varchar(8),ListDate,112) between '20130711' and '20130713'

insert into List (CustNo, OverDue4)
select CustNo,Cost from TableCost
where  DueDate between DateAdd(Day,-120,GetDate()) and DateAdd(Day,-91,GetDate()) 
and convert(varchar(8),ListDate,112) between '20130711' and '20130713'

ここで私の質問ですが、クエリ コードを短縮または改善する方法はありますか? このクエリをこのテーブルのみに挿入するのは長いようです

4

1 に答える 1