webForumDet fria alternativet

SQL till Stored Procedure stämmer inte

4 svar · 166 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#1

Jag försöker att göra en SQL till en SP. Det blir galet, resultaten bli olika, varför???

SP:n 
CREATE Procedure spFyllGrid 
(@songtitel varchar(20)) 
As 
SELECT t_songtitlar.songtitel, t_placering.Datum, 
Sum(CASE t_område.Område WHEN 'Sverige' THEN t_placering.Placering ELSE 0  END) 
AS Sverige, 
Sum(CASE t_område.Område WHEN 'Europa' THEN t_placering.Placering ELSE 0  END) 
AS Europa, 
Sum(CASE t_område.Område WHEN 'Världen' THEN t_placering.Placering ELSE 0  END) 
AS Världen 
FROM t_songtitlar   
INNER JOIN (t_område 
INNER JOIN t_placering ON t_område.omr_Id = t_placering.omr_Id) 
ON t_songtitlar.ArrNo = t_placering.ArrNo 
Where t_SongTitlar.songtitel = @songtitel 
GROUP BY t_songtitlar.songtitel, t_placering.Datum 
ORDER BY t_placering.Datum DESC 
GO 

SQL: 
SELECT t_songtitlar.songtitel, t_placering.Datum, 
    Sum(CASE t_område.Område WHEN 'Sverige' THEN t_placering.Placering ELSE 0  END) 
    AS Sverige, 
    Sum(CASE t_område.Område WHEN 'Europa' THEN t_placering.Placering ELSE 0  END) 
    AS Europa, 
    Sum(CASE t_område.Område WHEN 'Världen' THEN t_placering.Placering ELSE 0  END) 
    AS Världen 
    FROM t_songtitlar   
    INNER JOIN (t_område 
    INNER JOIN t_placering 
    ON t_område.omr_Id = t_placering.omr_Id) 
    ON t_songtitlar.ArrNo = t_placering.ArrNo 
    WHERE t_songtitlar.Songtitel = '" & List1.Text & "' 
    GROUP BY t_songtitlar.songtitel, t_placering.Datum 
    ORDER BY t_placering.Datum DESC

Dom är likadana, men ger olika resultat???

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Where t_SongTitlar.songtitel = @songtitel

WHERE t_songtitlar.Songtitel = '" & List1.Text & "'

är ju det enda som skiljer. Innehåller @songtitel och list1.text exakt samma värde? Kan det finnas med avslutande blanka eller något annat (icke printbart) tecken i någon av dom?

sawMedlem sedan mars 20011 880 inlägg
#3

Nej inte vad jag kan upptäcka.
Kör jag det i mitt VB-project, så skilljer det VÄLDIGT mycket.
Kan det vara någonting annat??

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Tja, din parameter är ju varchar(20), skickar du in något som är mer än 20 tecken när du anropar din sp?

Du kan ju skriva ut lite trace i din sp med hjälp av PRINT

sawMedlem sedan mars 20011 880 inlägg
#5

Jag tror att jag har upptäckt problemet nu.
När jag gick till egenskaper på tabelen, så hade jag datatypen nvarchar och 50.
Om jag ändrar det, så kan det nog ordna sig. Tack för hjälpen.

136 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)