从我的Claim
表中,我得到以下内容,
select min([Time]) minimumtime, terminal_id
from Claims
where claimflag = 2
group by terminal_id
输出,
minimumtime terminal_id
------------------------------------------
2017-04-21 20:02:00.000 9
2017-04-21 20:01:00.000 10
现在,我正在尝试将这些值转换为这样的变量,
declare @claimmintime datetime,
@term_id_val varchar(max)
select @claimmintime = min([Time]), @term_id_val= terminal_id
from Claims
where claimflag = 2
group by terminal_id
select @claimmintime [claims_came_in], @term_id_val [terminal_id_came_in]
我得到以下内容,
claims_came_in terminal_id_came_in
-----------------------------------------------------
2017-04-21 20:01:00.000 *
我需要这两个ID,
claims_came_in terminal_id_came_in
-----------------------------------------------------
2017-04-21 20:02:00.000 9
2017-04-21 20:01:00.000 10
我看到了post,这是使用表格完成的,我试过这样,
declare @term_id_val table(id int)
insert into
@term_id_val
select
distinct(terminal_id)
from
claims
where
claimflag = 2
select * from @term_id_val
输出,
id
-----
9
10
我可以把ids带到桌子上。但是,我需要在上面的同一查询中的所有内容,它为{ID提供*
。现在我有一个ID表,如何将表和单个变量组合在一个查询中返回最小时间?
答案 0 :(得分:1)
我认为您的变量赋值方法没有任何问题。 但对于table方法,请尝试在表变量中再添加一列。
declare @term_id_val table(mintime datetime, id int)
insert into
@term_id_val
select min([Time]) minimumtime, terminal_id
from Claims
where claimflag = 2
group by terminal_id
select * from @term_id_val