Operanden Daten vom Typ varchar ist ungültig für sum-operator

Ich versuche, diese Abfrage

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

Ausgang

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

wenn ich versuche diese

Sum(MA) MA,

DIESE ZEIGEN DEN FEHLER

Operanden Daten vom Typ varchar ist ungültig für sum operator.

Ich möchte Ergebnis wie dieses

Name    No     Cultus   vigo    total_v   MA    Speed
David   651    9         2       11       1799    345

UPDATE

wenn ich versuche diese

SUM(CASE ISNULL(MA,'') WHEN '' THEN 0 ELSE CAST(MA AS INT) END),

ist und auch dieses

sum(cast (MA as int))

dann Ausgabe

 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

aktualisiert 2:

wenn ich ausführen nur auf diesen Teil dieser show werden mehrere Datensätze mit gleichen Daten

 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

sieht aus wie Wert Total verändern

Ist Ihre MA-Spalte einer varchar-Datentyp?
ja
In diesem Fall können Sie aggregieren die Spalte Aggregation erfolgt nur für integer-Spalten. Ich ll Ihnen sagen, wie zu aggregieren string-Spalte
Die Antwort gepostet
Nicht speichern Sie numerische Daten, die in varchar-Spalten! Die Lösung ist alter Daten-Typ integer, nicht zu tun, quick-cast-fixes.

InformationsquelleAutor user6628729 | 2016-09-16

Schreibe einen Kommentar