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.
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann es eine chance sein, der string Wert in der Spalte RVU.MA. Versuchen Sie mit der folgenden Abfrage, um herauszufinden, wie descrepancies.
InformationsquelleAutor Unnikrishnan R
Uou können, verwenden Sie die folgende syntax, um Ihre Antwort.
Versuchen Sie die Anwendung dieser syntax
Überprüfen Sie diese Abfrage, ob Sie waren in der Lage, wählen Sie Ihren Eintrag, und diese Logik in Ihrer Abfrage.
Ihre endgültige Abfrage sieht so aus,
überprüfen Sie updated2 Frage
InformationsquelleAutor Jim Macaulay
Müssen Sie tun
In Ihrem Fall MA Spalte ist vom Typ Varchar
Ich weiß nicht, was Sie sayiong,bitte update Frage
überprüfen Sie update-Frage
Gruppe durch,bitte nicht weiter Fragen, updatd Fragen
InformationsquelleAutor TheGameiswar
Scheint, dass einer Ihrer MA-Spalte-Wert ist der Typ von varchar, überprüfen Sie bitte Ihre Daten
Wenn Ihr Daten vom Typ varchar, dann cast zu INT:
Was ist der Datentyp von der Spalte? es darf nicht sein Typ string/varchar/nvarchar
Datentyp ist varchar
ja varchar-Datentyp
überprüfen Sie update-Frage
InformationsquelleAutor Sandip - Full Stack Developer