插入 max + 1 entry_sr_no 的重复记录
Insert duplicate record with max + 1 entry_sr_no
我有一个 SP,其中 returns 我是相应 文件编号 的最大条目编号。
现在我想要的是,我想在 inward_doc_tracking_trl
table 中插入相同的记录 with max + 1 entry_sr_no
比方说,
Max_Entry_Srno
of doc_no
= IW/16/5694 是 3,
然后在 trl
table 中插入相同的内容时 Max_Entry_Srno
应该是 4.
这是我的SP
ALTER procedure set_auto_action
as
begin
select hdr.mkey, hdr.doc_no, MAX(trl.entry_sr_no) as Max_Entry_Srno
from inward_doc_tracking_hdr hdr
JOIN inward_doc_tracking_trl trl
ON(hdr.mkey = trl.ref_mkey)
where hdr.status_flag not in (5,13)
and trl.U_Datetime < DATEADD(DAY, -1, GETDATE())
GROUP BY hdr.mkey, hdr.doc_no
end
另见SP返回结果截图
inward_doc_tracking_trl
的table脚本也在下面:-
CREATE TABLE [dbo].[Inward_Doc_Tracking_Trl](
[Mkey] [numeric](18, 0) NOT NULL,
[Entry_Sr_No] [numeric](4, 0) NOT NULL,
[N_UserMkey] [numeric](10, 0) NULL,
[N_Department] [numeric](10, 0) NULL,
[CStatus_Flag] [numeric](8, 0) NOT NULL,
[Remarks] [varchar](500) NULL,
[CUser_ID] [numeric](10, 0) NOT NULL,
[U_Datetime] [datetime] NOT NULL,
[NStatus_Flag] [numeric](10, 0) NOT NULL,
[Delete_Flag] [char](1) NULL,
[CDept_Id] [numeric](10, 0) NOT NULL,
[Ref_Mkey] [numeric](18, 0) NULL,
[No_Of_Days] [int] NULL,
[Approved_Amount] [float] NULL,
[Chq_No] [varchar](50) NULL,
[Chq_dated] [datetime] NULL,
[Chq_Bank] [varchar](40) NULL,
[Chq_Amount] [float] NULL,
[Vendor_MKey] [int] NULL,
[Vendor_Comp_Mkey] [int] NULL,
[Project_Mkey] [numeric](10, 0) NULL,
[Program_mkey] [numeric](10, 0) NULL,
[Payment_MKey] [int] NULL,
[Due_Date] [datetime] NULL,
[Updated_Remarks] [varchar](500) NULL,
[Updated_Bill_no] [varchar](27) NULL,
[Updated_Bill_Date] [datetime] NULL,
[Updated_Bill_Amt] [float] NULL,
[Party_Name] [varchar](80) NULL,
[Acc_mkey] [numeric](10, 0) NULL,
[TotalDeductions] [float] NULL,
[Broker_Mkey] [numeric](10, 0) NULL,
[Customer_Mkey] [numeric](10, 0) NULL,
[Payable_Amt] [float] NULL,
[Balance_Amt] [float] NULL,
[Receipt_No] [varchar](50) NULL,
[Po_No] [varchar](50) NULL,
[Bill_No] [varchar](50) NULL,
[Disp_through] [varchar](50) NULL,
[Disp_Through_Name] [varchar](100) NULL,
[Site_Id] [int] NULL,
CONSTRAINT [PK_Inward_Doc_Tracking_Trl_1] PRIMARY KEY CLUSTERED
(
[Mkey] ASC,
[Entry_Sr_No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
注意:使用 max+ 1 添加重复行的原因 sr_no 是为了让用户知道文档已被该用户接收
会联合所有帮助
---this returns dupe
select hdr.mkey, hdr.doc_no, MAX(trl.entry_sr_no) as Max_Entry_Srno
from inward_doc_tracking_hdr hdr
JOIN inward_doc_tracking_trl trl
ON(hdr.mkey = trl.ref_mkey)
where hdr.status_flag not in (5,13)
and trl.U_Datetime < DATEADD(DAY, -1, GETDATE())
GROUP BY hdr.mkey, hdr.doc_no
union all
---dupe+1
select hdr.mkey, hdr.doc_no, MAX(trl.entry_sr_no)+1 as Max_Entry_Srno
from inward_doc_tracking_hdr hdr
JOIN inward_doc_tracking_trl trl
ON(hdr.mkey = trl.ref_mkey)
where hdr.status_flag not in (5,13)
and trl.U_Datetime < DATEADD(DAY, -1, GETDATE())
GROUP BY hdr.mkey, hdr.doc_no
我有一个 SP,其中 returns 我是相应 文件编号 的最大条目编号。
现在我想要的是,我想在 inward_doc_tracking_trl
table 中插入相同的记录 with max + 1 entry_sr_no
比方说,
Max_Entry_Srno
of doc_no
= IW/16/5694 是 3,
然后在 trl
table 中插入相同的内容时 Max_Entry_Srno
应该是 4.
这是我的SP
ALTER procedure set_auto_action
as
begin
select hdr.mkey, hdr.doc_no, MAX(trl.entry_sr_no) as Max_Entry_Srno
from inward_doc_tracking_hdr hdr
JOIN inward_doc_tracking_trl trl
ON(hdr.mkey = trl.ref_mkey)
where hdr.status_flag not in (5,13)
and trl.U_Datetime < DATEADD(DAY, -1, GETDATE())
GROUP BY hdr.mkey, hdr.doc_no
end
另见SP返回结果截图
inward_doc_tracking_trl
的table脚本也在下面:-
CREATE TABLE [dbo].[Inward_Doc_Tracking_Trl](
[Mkey] [numeric](18, 0) NOT NULL,
[Entry_Sr_No] [numeric](4, 0) NOT NULL,
[N_UserMkey] [numeric](10, 0) NULL,
[N_Department] [numeric](10, 0) NULL,
[CStatus_Flag] [numeric](8, 0) NOT NULL,
[Remarks] [varchar](500) NULL,
[CUser_ID] [numeric](10, 0) NOT NULL,
[U_Datetime] [datetime] NOT NULL,
[NStatus_Flag] [numeric](10, 0) NOT NULL,
[Delete_Flag] [char](1) NULL,
[CDept_Id] [numeric](10, 0) NOT NULL,
[Ref_Mkey] [numeric](18, 0) NULL,
[No_Of_Days] [int] NULL,
[Approved_Amount] [float] NULL,
[Chq_No] [varchar](50) NULL,
[Chq_dated] [datetime] NULL,
[Chq_Bank] [varchar](40) NULL,
[Chq_Amount] [float] NULL,
[Vendor_MKey] [int] NULL,
[Vendor_Comp_Mkey] [int] NULL,
[Project_Mkey] [numeric](10, 0) NULL,
[Program_mkey] [numeric](10, 0) NULL,
[Payment_MKey] [int] NULL,
[Due_Date] [datetime] NULL,
[Updated_Remarks] [varchar](500) NULL,
[Updated_Bill_no] [varchar](27) NULL,
[Updated_Bill_Date] [datetime] NULL,
[Updated_Bill_Amt] [float] NULL,
[Party_Name] [varchar](80) NULL,
[Acc_mkey] [numeric](10, 0) NULL,
[TotalDeductions] [float] NULL,
[Broker_Mkey] [numeric](10, 0) NULL,
[Customer_Mkey] [numeric](10, 0) NULL,
[Payable_Amt] [float] NULL,
[Balance_Amt] [float] NULL,
[Receipt_No] [varchar](50) NULL,
[Po_No] [varchar](50) NULL,
[Bill_No] [varchar](50) NULL,
[Disp_through] [varchar](50) NULL,
[Disp_Through_Name] [varchar](100) NULL,
[Site_Id] [int] NULL,
CONSTRAINT [PK_Inward_Doc_Tracking_Trl_1] PRIMARY KEY CLUSTERED
(
[Mkey] ASC,
[Entry_Sr_No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
注意:使用 max+ 1 添加重复行的原因 sr_no 是为了让用户知道文档已被该用户接收
会联合所有帮助
---this returns dupe
select hdr.mkey, hdr.doc_no, MAX(trl.entry_sr_no) as Max_Entry_Srno
from inward_doc_tracking_hdr hdr
JOIN inward_doc_tracking_trl trl
ON(hdr.mkey = trl.ref_mkey)
where hdr.status_flag not in (5,13)
and trl.U_Datetime < DATEADD(DAY, -1, GETDATE())
GROUP BY hdr.mkey, hdr.doc_no
union all
---dupe+1
select hdr.mkey, hdr.doc_no, MAX(trl.entry_sr_no)+1 as Max_Entry_Srno
from inward_doc_tracking_hdr hdr
JOIN inward_doc_tracking_trl trl
ON(hdr.mkey = trl.ref_mkey)
where hdr.status_flag not in (5,13)
and trl.U_Datetime < DATEADD(DAY, -1, GETDATE())
GROUP BY hdr.mkey, hdr.doc_no