Vet inte om jag fattar rätt, men testa detta:
EXEC @antal = [dbo].[ppigrsp_countOversattaAnnonsersAntalOrdTys]
UPDATE dbo.translator
SET dbo.translator.antOrdaktuellt = translator.antOrdaktuellt +@antal
WHERE dbo.translator.uid = @uid
3 svar · 408 visningar · startad av freddyk
Hallå!
Hur adderar jag en siffra till en rad i en tabell?
Vill att exempelvis antOrdaktuellt ska ökas med @antal (ex 24) och blir 24 istället. Men får inte till det...
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @antal int
BEGIN
EXEC @antal = [dbo].[ppigrsp_countOversattaAnnonsersAntalOrdTys]
--SELECT 'Return Value' = @return_value
-- Insert statements for procedure here
UPDATE dbo.translator
SET dbo.translator.antOrdaktuellt = (SELECT dbo.translator.antOrdaktuellt + @antal FROM dbo.translator WHERE dbo.translator.uid = @uid)
WHERE dbo.translator.uid = @uid
END
END
@antal kommer från ppigrsp_countOversattaAnnonsersAntalOrdTys...
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT ISNULL(SUM(dbo.annons.antOrd), 0) AS Totalt
FROM dbo.annons
WHERE dbo.annons.oversTysKlar = '1';
END
Hur ska jag göra detta? Jag gör något fel. Det är klart... :)
Tack på förhand!
SQL Server 2005
Vet inte om jag fattar rätt, men testa detta:
EXEC @antal = [dbo].[ppigrsp_countOversattaAnnonsersAntalOrdTys]
UPDATE dbo.translator
SET dbo.translator.antOrdaktuellt = translator.antOrdaktuellt +@antal
WHERE dbo.translator.uid = @uid
hmmm...
nej tyvärr... den adderar inget i kolumn dbo.translator.antOrdaktuellt
Vill alltså helt enkelt göra en addition på tal1 = tal1 + tal2.
Varför kan du inte bara använda den select som ligger i proceduren ppigrsp_countOversattaAnnonsersAntalOrdTys direkt i din update?
Om den rutinen är komplicerad kan du göra om den till en funktion som returnerar värdet och använda den i din update.
Det resultat du får i @antal är procedurens status, inte resultatet av selecten.