Jeg har en kode som jeg ikke kan få til at returnere det jeg gerne vil have, jeg prøver og samle 2 tal således at de står som f.eks. 44/82 Begge tal kommer fra et numerisk fejl, så tænker at mine problemer ligger i at konvertere fra tal til tekst. Fejlen jeg får er "Error converting data type varchar to float"
SELECT dbo.Specs.ItemID, CASE dbo.Specs.Number WHEN ' ' THEN Specs_1.Number ELSE CAST(dbo.Specs.Number AS varchar) + '/' + CAST(Specs_1.Number AS varchar) END AS H FROM dbo.Specs INNER JOIN dbo.Specs AS Specs_1 ON dbo.Specs.ItemID = Specs_1.ItemID WHERE (dbo.Specs.SpecType = 321) AND (Specs_1.SpecType = 241) GROUP BY dbo.Specs.ItemID, dbo.Specs.Number, Specs_1.Number HAVING (dbo.Specs.ItemID = 25532)
Et hurtigt gæt: Din WHEN THEN og din ELSE giver henholdsvis et tal (Specs_1.Number) og en streng (...varchar,,,).
Mn begge skal være samme type, eller kunne konverteres automatisk. Mon ikke du skal prøve at lave Specs_1.Number til en varchar på samme måde som i ELSE?
Som jeg forstod din besked så ville du have VARCHAR på efter min THEN.
CASE dbo.Specs.Number WHEN ' ' THEN [b]CAST(Specs_1.Number AS VARCHAR)[b\] ELSE CAST(dbo.Specs.Number as AS VARCHAR) + '/' + CAST(Specs_1.Number AS VARCHAR) END AS H
Ja så du vil have det som THEN CAST('Specs_1.Number ' as VARCHAR) ELSE ...
CASE dbo.Specs.Number WHEN '' THEN CAST('Specs_1.Number' as VARCHAR) ELSE CAST(dbo.Specs.Number as AS VARCHAR) + '/' + CAST(Specs_1.Number AS VARCHAR) END AS H
'Specs_1.Number ' skal ikke være i enkeltstroffer. Helt uden.
Mit eksempel med 18 g '18' er på værdier, ikke på navne.
Men fejlen er nok, at du har skrevet AS to gange i rap.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.