Я стараюсь, этот запросОперанд тип данных VARCHAR недопустим для оператора суммы
Select
S.Name,S.No,
SUM(Case when s.Model='Cultus' then total else 0 end) as Cultus,
SUM(Case when s.Model ='vigo' then total else 0 end) as vigo,
SUM(total) total_v ,
s.MA,MAX(S.Speed) Speed
from (
Select
RVU.Name,RVU.No,VV.Model,count(VV.Model) as total, RVU.MA as MA,RVU.Speed
from
VV
inner join RVU
on VV.MID=RVU.ID
inner join RU on RVU.RID= RU.RID
WHERE
RU.StartDate>= '2016-04-01 00:00:00' and
RU.EndDate<='2016-04-30 23:59:59' and
RU.Region= 'Paris'
and RVU.No= '651' AND Model <> ''
Group By RVU.Name,RVU.RegNo,VV.Model,RVU.MA,RVU.Speed) S
GROUP BY
s.RegNo,s.Name,S.MA
Ouput
Name No Cultus vigo total_v MA Speed
David 651 2 0 2 1048 124
David 651 3 0 3 597 345
David 651 1 0 1 606 101
David 651 3 2 5 992 110
когда я попробовать этот
Sum(MA) MA,
ЭТА ВЫСТАВКА ERROR
О perand тип данных varchar недействителен для оператора сумм.
Я хочу привести как этот
Name No Cultus vigo total_v MA Speed
David 651 9 2 11 1799 345
UPDATE
когда я попробовать этот
SUM(CASE ISNULL(MA,'') WHEN '' THEN 0 ELSE CAST(MA AS INT) END),
, а также этот
sum(cast (MA as int))
затем выход
Name No Cultus vigo total_v MA Speed
David 651 2 0 2 4192 124
David 651 3 0 3 2388 345
David 651 1 0 1 2424 101
David 651 3 2 5 4960 110
обновлена 2:
, когда я исполняю только эта часть этого шоу несколько записей с одинаковыми данными
Select
RVU.Name,RVU.No,VV.Model,count(VV.Model) as total, RVU.MA as MA,RVU.Speed
from
VV
inner join RVU
on VV.MID=RVU.ID
inner join RU on RVU.RID= RU.RID
WHERE
RU.StartDate>= '2016-04-01 00:00:00' and
RU.EndDate<='2016-04-30 23:59:59' and
RU.Region= 'Paris'
and RVU.No= '651' AND Model <> ''
Group By RVU.Name,RVU.RegNo,VV.Model,RVU.MA,RVU.Speed
выглядит как значение полностью изменить
Ваш столбец MA является типом данных VARCHAR? –
@JimMacaulay yes – user6628729
В этом случае вы не можете агрегировать столбец, агрегирование выполняется только для целых столбцов. Я расскажу вам, как заполнить колонку строк –