Avatar billede mahyar Nybegynder
14. august 2007 - 10:42 Der er 4 kommentarer og
1 løsning

Insert og Select

Den nedenstående SELECT forespørgesel returnere nogle counts værdier. Disse værdier skal indsættes i en temptabel.
SELECT:

Select cnt
from  (Select * from tblsplit where Level = 2) b
left join (Select * from split_0 where statisticid = 2 and unitid = 4634
) a
on  a.splitid = b.splitid
where  splitgroup_1 in
  (
  Select  splitgroup_1
  from  (Select * from tblsplit where Level = 2 and splitgroup_2 is null) b
  inner join (Select * from split_0 where statisticid = 2 and unitid = 4634) a
  on  a.splitid = b.splitid
  )
  AND splitname NOT In ('Andet', 'Danske Bank') AND splitgroup_2 is null
Order by cnt desc



Er der en nem måde at kunne gøre det på?
Avatar billede nielle Nybegynder
14. august 2007 - 10:59 #1
Prøv med dette:

INSERT INTO dinTempTabel
(
    Select cnt
    from  (Select * from tblsplit where Level = 2) b
    left join (Select * from split_0 where statisticid = 2 and unitid = 4634) a
    on  a.splitid = b.splitid
    where  splitgroup_1 in
    (
        Select  splitgroup_1
        from  (Select * from tblsplit where Level = 2 and splitgroup_2 is null) b
        inner join (Select * from split_0 where statisticid = 2 and unitid = 4634) a
        on a.splitid = b.splitid
    )
    AND splitname NOT In ('Andet', 'Danske Bank') AND splitgroup_2 is null
    Order by cnt desc
)
Avatar billede mahyar Nybegynder
14. august 2007 - 11:29 #2
jeg får følgende fejl:

Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'Select'.
Msg 170, Level 15, State 1, Line 16
Line 16: Incorrect syntax near ')'.
Avatar billede lorentsnv Nybegynder
14. august 2007 - 13:29 #3
Hvis du vil lave en ny tabel, kan du bruge en select into:

Select cnt
Into MinNyeTmpTabel
from  (Select * from tblsplit where Level = 2) b
left join (Select * from split_0 where statisticid = 2 and unitid = 4634
) a
on  a.splitid = b.splitid
where  splitgroup_1 in
  (
  Select  splitgroup_1
  from  (Select * from tblsplit where Level = 2 and splitgroup_2 is null) b
  inner join (Select * from split_0 where statisticid = 2 and unitid = 4634) a
  on  a.splitid = b.splitid
  )
  AND splitname NOT In ('Andet', 'Danske Bank') AND splitgroup_2 is null
Order by cnt desc


Hvis du har en tabel, som kun indeholder feltet cnt, kan du gøre følgende:

INSERT INTO dinTempTabel(cnt)
Select cnt
from  (Select * from tblsplit where Level = 2) b
left join (Select * from split_0 where statisticid = 2 and unitid = 4634
) a
on  a.splitid = b.splitid
where  splitgroup_1 in
  (
  Select  splitgroup_1
  from  (Select * from tblsplit where Level = 2 and splitgroup_2 is null) b
  inner join (Select * from split_0 where statisticid = 2 and unitid = 4634) a
  on  a.splitid = b.splitid
  )
  AND splitname NOT In ('Andet', 'Danske Bank') AND splitgroup_2 is null
Order by cnt desc
Avatar billede mahyar Nybegynder
20. august 2007 - 10:35 #4
lorentsnv vil du ikke sende et svar?
Avatar billede lorentsnv Nybegynder
22. august 2007 - 13:26 #5
svar :)
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