Как я могу написать выбрать с помощью курсора - PullRequest
1 голос
/ 23 июня 2019

У меня есть следующий код:

SELECT 
    Przedmiot, COUNT(Ocena) 'wystawiono n ocen'
FROM
    Przedmiot
JOIN
    ocena ON przedmiot.IdPrzedmiot = Ocena.IdPrzedmiot
GROUP BY
    Przedmiot

Как я могу запустить это с помощью курсора T-SQL?

Это то, что у меня есть, но он печатает одну и ту же строку несколько раз:(

DECLARE db_cursor CURSOR FOR 
        SELECT Przedmiot, COUNT(Ocena) 'wystawiono n ocen'
        from Przedmiot
        join ocena 
        on przedmiot.IdPrzedmiot = Ocena.IdPrzedmiot
        group by Przedmiot
DECLARE @Przedmiot varchar(50)
DECLARE @IloscOnen varchar(50)
OPEN db_cursor  
    FETCH NEXT FROM db_cursor into @Przedmiot, @IloscOnen
    WHILE @@FETCH_STATUS = 0
       BEGIN 
       print  @Przedmiot + ' - wystawiono ' + @IloscOnen + ' ocen'
          FETCH NEXT FROM db_cursor
       END 
CLOSE db_cursor  
DEALLOCATE db_cursor 
go

1 Ответ

0 голосов
/ 23 июня 2019

Вам нужно FETCH значения в ваши переменные:

DECLARE db_cursor CURSOR FOR 
        SELECT Przedmiot, COUNT(Ocena) 'wystawiono n ocen'
        from Przedmiot
        join ocena 
        on przedmiot.IdPrzedmiot = Ocena.IdPrzedmiot
        group by Przedmiot
DECLARE @Przedmiot varchar(50)
DECLARE @IloscOnen varchar(50)
OPEN db_cursor  
    FETCH NEXT FROM db_cursor into @Przedmiot, @IloscOnen
    WHILE @@FETCH_STATUS = 0
       BEGIN 
       print  @Przedmiot + ' - wystawiono ' + @IloscOnen + ' ocen'
          FETCH NEXT FROM db_cursor into @Przedmiot, @IloscOnen
       END 
CLOSE db_cursor  
DEALLOCATE db_cursor 
go
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...