SQL-запрос для подсчета в хранимом процессе - PullRequest
0 голосов
/ 16 марта 2010

Так что мне нужно выяснить, как я могу получить значение счетчика записей и использовать его в качестве нового значения для вставки в таблицу.

Пример: в моей хранимой процедуре

@ Count int

Что я ищу

@ Считать равным «выбрать top (1) _fieldName из порядка _someTable по _fieldName Desc»

Наконец

вставить в _newTable (_fieldName) значения (@Count)

Конец

Мне не нужно использовать переменную, просто пытаюсь продемонстрировать, что я действительно пытаюсь сделать. Мои знания SQL довольно ограничены, поэтому не надо смеяться или ухмыляться! ;)

Ответы [ 5 ]

1 голос
/ 16 марта 2010

Вы должны использовать INSERT-SELECT. Это INSERT, который использует все строки, возвращаемые из SELECT, в качестве значений для вставки. Попробуйте что-то вроде этого (пример кода SQL Server):

DECLARE @TableToCount  table (fieldName varchar(5))
INSERT INTO @TableToCount VALUES ('A')
INSERT INTO @TableToCount VALUES ('B')
INSERT INTO @TableToCount VALUES ('C')

DECLARE @TableToStore  table (fieldName int)

INSERT INTO @TableToStore
    (fieldName)
    SELECT 
        COUNT(fieldName)
        FROM @TableToCount

SELECT * FROM @TableToStore

ВЫВОД:

fieldName
-----------
3

(1 row(s) affected)
1 голос
/ 16 марта 2010

В SQL SERVER

       DECLARE @Count INT
        SET @COUNT = SELECT COUNT(*) FROM SomeTable
        insert into newTable (fieldName) values (@Count)

     OR


      INSERT INTO newTable (fieldName)
      SELECT COUNT(*) FROM SomeTable
0 голосов
/ 11 ноября 2012

То, что я искал, было идентификатором вставки во время сохраненного процесса. завершите это некоторое время назад, но хотели опубликовать окончательный ответ.

SELECT SCOPE_IDENTITY ()

0 голосов
/ 16 марта 2010

Если вы используете SQL Server, то почему бы не использовать @@ROWCOUNT

0 голосов
/ 16 марта 2010

Не уверен, какая база данных, поэтому я напишу Sybasish.

declare @count int
select @int = count (1) from  ... the rest of your query
insert another_table values (@count, 'other_field')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...