-1
我想要做的是将多个行选择到临时表的单个行中。临时表中应该有1行列出所有不同的应计值。这是下面的代码:选择多个行到单个行临时表
declare @RunDate varchar(7)
set @RunDate = '2013-07'
declare @ShortItemNo1 int
set @ShortItemNo1 = 723639
declare @SalesAccruals table(QuantityShipped int, ShortItemNo int, GrossAmount money, AccrualReturns money, AccrualMedicaid money,
AccrualChargebacks money)
insert @SalesAccruals
select
sum(s.QuantityShipped) QuantityShipped,
s.ShortItemNo,
sum(s.ExtendedPrice) ExtendedPrice,
case when aa.AccrualType=3 then sum(a.AccrualAmount) end,
case when aa.AccrualType=8 then sum(a.AccrualAmount) end,
case when aa.AccrualType=2 then sum(a.AccrualAmount) end
from
SalesSummary s join Accruals a on
s.SalesSummaryGuid = a.SalesSummaryGuid
join AccrualsSetup aa on
a.AccrualsSetupGuid = aa.AccrualsSetupGuid
join LookupAccrualTypes la on
la.AccrualTypeID = aa.AccrualType
where
convert(varchar(7), InvoiceDate, 20) = @RunDate
and s.ShortItemNo in (@ShortItemNo1)
group by
s.ShortItemNo,
aa.AccrualType
select * from @SalesAccruals
你可以提供你想要的临时表中的样本数据吗? – David
现在select语句返回四行,因为有四种不同的应计类型。我想要将所有应计类型的一行选入临时表中。我不确定case case语句是否是最好的方法... – Jeff
现在它按照我想要的方式工作,但列中的其他值为空值。任何方式摆脱这些? – Jeff