То, что я пытаюсь сделать, - это выбрать несколько строк в одну строку таблицы temp. В таблице temp должно быть 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 возвращает четыре строки, потому что существует четыре разных типа начислений. Я хочу, чтобы в таблицу temp была выбрана одна строка со всеми типами начислений. Я не уверен, является ли case case лучшим способом для этого ... – Jeff
Теперь он работает так, как я хочу, но другие значения в столбцах - это нулевые значения. Любой способ избавиться от них? – Jeff