webForumDet fria alternativet

Addera tal... ?

3 svar · 406 visningar · startad av freddyk

freddykMedlem sedan okt. 2006103 inlägg
#1

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

clarkbonesMedlem sedan feb. 20012 693 inlägg
#2

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

freddykMedlem sedan okt. 2006103 inlägg
#3

hmmm...

nej tyvärr... den adderar inget i kolumn dbo.translator.antOrdaktuellt

Vill alltså helt enkelt göra en addition på tal1 = tal1 + tal2.

LarsGMedlem sedan dec. 200012 465 inlägg
#4

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.

Genererad på 372 ms · cache AV · v20260730165559-full.f96bc7eb