我有一个存储过程每天运行,并做了简单的工作。它是如何工作的:从有序的选择结果插入
- 获得实际的实体“树”
- 填写临时表
- 选择从临时表
- 有序的数据填充另一个表3列 - 这里我有一个问题因为我不能从订购的选择插入。
所以。此时此地的过程:
ALTER PROCEDURE [dbo].[CreateQueueAccountOrder]
@dtUtc datetime
AS
BEGIN
delete from dbo.[Feedback.QueueAccountOrder] -- clean dest table
create table #TempTree
(
[Total] int,
[AccountCode] nvarchar(20),
[AccountName] nvarchar(512),
[Utc] float,
[CityCode] nvarchar(50),
[CityName] nvarchar(128)
)
-- getting actual flat tree
insert into #TempTree exec GetActualFeedbackQueueTree @dtUtc
declare @total int;
select @total = count(*) from #TempTree
print 'total nodes ' + str(@total)
select distinct tA.AccountCode, tA.AccountName, tA.Utc, tC.CityCode, tC.CityName
from #TempTree tC
left join #TempTree tA
on tA.CityCode = tC.CityCode
order by tC.CityName,tA.AccountName
END
另一个表:
CREATE TABLE [dbo].[Feedback.QueueAccountOrder](
[QOrder] [int] NOT NULL,
[Code] [nvarchar](20) NOT NULL,
[Utc] [float] NULL
) ON [PRIMARY]
的目标是,以填补该表存储过程的最后选择的结果。并非QOrder
需要是来自选择结果(1,2,3,4等),Code
和Utc
也来自选择结果。 所以。如何解决它?谢谢!
ps。堆栈: T-SQL,MS SQL Server 2012的
为什么不加一个INSERT语句到存储过程'插入Feedback.QueueAccountOrder(QOrder,代码,UTC)选择...从#TempTree的tC 留在tA.CityCode = tC.CityCode'加入#TempTree TA –