Avatar billede curriculum Nybegynder
18. november 2004 - 19:20 Der er 1 kommentar og
1 løsning

Samle data fra temp table

Jeg vil gerne producere en email med samlet data fra en temp table, altso select'e ud fra et temp id og siden lægge den ny select'ede data til eksisterende data. Jeg har lavet følgende kode, men den er ikke helt rigtig !!! variablen @body skal bruges til email body...

DECLARE @count int
DECLARE @current int
DECLARE @docname varchar(255)
DECLARE @visits varchar(50)
DECLARE @body varchar(4000)
DECLARE @curbody varchar(100)

BEGIN
IF NOT EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'visitstats')
    CREATE TABLE visitstats (id int IDENTITY(1,1),body text)
END

INSERT INTO visitstats (body)
(SELECT sDocname + ' er vist ' + CAST(VisitCount AS varchar(50)) + ' gange ialt'
FROM tDoc WHERE DocStatusID = 1 AND Not mDocBody IS NULL)

SELECT @count = COUNT(Id) FROM visitstats
SET @current = 1

WHILE @current < (@count+1)
BEGIN
    SELECT @curbody = body FROM visitstats WHERE Id = @current
    SET @body = @body + @curbody
    SET @current = @current+1
END

SELECT @body
DROP TABLE visitstats
Avatar billede janus_007 Nybegynder
18. november 2004 - 20:49 #1
Jeg kan godt se hvad det er du vil :O)
Du vil loope igennem dit visitstats og appende til @body'en. Jeg ser 2 ting umiddelbart... Du lægger noget til en null value i det her tilfælde @body og @curbody. Dvs. du siger null + aString hvilket giver null (ihvertfald hvis du kører default opsætning) Udover det så ser jeg også at du tæller antallet af counts... hmm tjaa sådan kan man gøre det, men nogle vil sikkert råde dig til at bruge en cursor her. Nej ved nærmere eftertanke så hold fast i det du har lavet med identity og så iterere over den.

Såfremt der virkelig er noget i tabellen visitstats så burde det virke, hvis du bare lige gør sådan her inden du går ind i loopet:

set @body = ''
set @curbody = ''

Hygge
Avatar billede curriculum Nybegynder
19. november 2004 - 17:39 #2
Det var problemet... null variabler
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester