Member 12605293 Ответов: 2

У меня есть две таблицы, и я должен вставить значения этих двух таблиц в третью таблицу? С помощью курсора?


Table 1             Table 2                          Table 3
Col 1     Col 2          Col 1                        Col 1      Col2
Id       Name            Doc No                       Doc No     Name
01       abc              01                           01        abc
02       def              02                           01        def 


В третьих таблицах мне нужен вышеприведенный вывод с помощью курсора?Может ли кто-нибудь вести меня?

Maciej Los

Вы действительно хотите вставить данные или хотите их удалить?

Member 12605293

Вставляйте данные динамически, если мы добавим имя в будущем.

2 Ответов

Рейтинг:
7

vani suresh

Привет,

SET NOCOUNT ON
DECLARE @name varchar(50)
DECLARE @DepartmentCode varchar(50)

-- Declare the cursor using the declare keyword
Declare StudentIDCursor CURSOR FOR 
SELECT name,DeaprtmentCode
FROM Student,[Subject]

-- Open statement, executes the SELECT statment
-- and populates the result set
Open StudentIDCursor

-- Fetch the row from the result set into the variable
Fetch Next from StudentIDCursor into @name,@DepartmentCode

-- If the result set still has rows, @@FETCH_STATUS will be ZERO
While(@@FETCH_STATUS = 0)
Begin
-- PRINT Name : '+@name+ ', DepartmentCode : '+convert(varchar(20),@DepartmentCode)'
 
INSERT INTO [Class]([Name],[DepartmentCode])
     VALUES
           (@name,@DepartmentCode)

 
 Fetch Next from StudentIDCursor into @name,@DepartmentCode
End
CLOSE StudentIDCursor 

DEALLOCATE StudentIDCursor
SET NOCOUNT OFF 


Здесь расположен о/п
====================

Name    DepartmentCode
vani    ENG-001
vani    MATH-002
vani    SOCIAL-003
vani    GENSCIENCE-004
vani    GEOGRAPHY-005
    soni    ENG-001
    soni    MATH-002
    soni    SOCIAL-003
    soni    GENSCIENCE-004
    soni    GEOGRAPHY-005
    ravi    ENG-001
    ravi    MATH-002
    ravi    SOCIAL-003
    ravi    GENSCIENCE-004
    ravi    GEOGRAPHY-005


Member 12605293

Я пробовал, но это не работает.
Выше был приведен пример сценария, приведенный мной.
Вот мой первоначальный запрос.

У меня есть три таблицы 1. ORSC 2.@EA_OFUM 3.@EA_FUM1
Из таблицы один, таблицы два и таблицы три я должен собрать данные, сохранить их в таблице три и обновить.


Объявить указатель топлива на
Выберите дату разноски документа, код проекта,название проекта,Имя группы, идентификатор машины,имя машины, выпущенный
ОТ @EAMIN_OFUM, [ORSC], [@EAMIN-FUM1]
Открытое топливо
Принести след от топлива на @дата проводки документа, код проекта@,@Имя проекта,@Имя_группы,ИД компьютера,@имя,@выдан
while (@@FETCH_STATUS=0)
Вставить в [@EAMIN_FUM1] (дата проводки документа, код проекта,название проекта,тип оборудования,идентификатор машины,название машины, кол-во выпущенных сегодня)
Значения (@дата публикации документа,@код проекта,@название проекта,@тип оборудования,@идентификатор машины,@имя машины,@выпущенное сегодня кол-во)
Принести след от топлива на @дата проводки документа, код проекта@,@Имя проекта,@Имя_группы,ИД компьютера,@имя,@выдан
Конец
Недалеко топлива
Освободить топлива
УСТАНОВИТЬ NOCOUNT OFF


Скалярная Ошибка, Показывающая

vani suresh

Вы уже отвергли мой ответ и все, что я сделал в соответствии с вашими комментариями и вопросами,
И снова ваш запрос не работает, значит, это не моя проблема.


Но как бы то ни было, вы включили SET NOCOUNT
И объявлять переменные для всех полей?

Потому что эта информация отсутствовала в вашем запросе.

И почему переменные declare различаются в строке выборки и значениях.
Всегда будет одно и то же, в строке выборки нет типа @Equipment.

Пожалуйста, исправьте все ваши вопросы.

Member 12605293

Привет Вани
Спасибо за быстрый ответ.Я прошу прощения за свои ошибки.Но когда я выполняю его, он показывает дату публикации документа(неправильный синтаксис рядом с датой приходит) и что подразумевается под скалярной переменной?

Member 12605293

Привет Вани
Могу ли я связаться с вами по электронной почте и поделиться своей папкой с вами, чтобы получить результат в соответствии с этим документом

Member 12605293

Привет Вани
Не могли бы Вы помочь мне в этом, поделившись своим почтовым идентификатором, чтобы я мог отправить свой лист Excel

Member 12605293

Привет Вани
Спасибо, что поделились подробностями .Проверьте свою почту и дайте мне знать, если вы не получили ее, я отправлю ее снова.

Рейтинг:
1

vani suresh

Привет,

Пожалуйста, перейдите по этой ссылке для примера курсора для обновления
пример курсора для обновления

Подробное объяснение о курсоре и с примерами того, как он работает.
информация о курсоре

Спасибо
:)


Member 12605293

Только представьте, что это школа ... где в таблице 1: ID и имя (имена столбцов) Таблица 2: DepartmentCode (имя столбца) мой вывод должен быть в таблице 3, где все идентификаторы и имя должны быть для каждого Doc No...Например,в школе у них есть код факультета (ENG-001,MATH-002,SOCIAL-003,GENSCIENCE-004 ,GEOGRAPHY-005), если мы возьмем конкретный студенческий билет и имя из таблицы 1, он должен изучать все предметы, поэтому, когда мы выбираем (Social-003, все идентификаторы и имя должны быть в Social), как мудрый, каждый кандидат должен пройти все факультеты.Это крики приходят в третий стол

vani suresh

Привет ,

Выход должен быть таким ?
Код наименование код ведомства
1 Вани Энг-001
2 Вани математика-002
3 Вани социально-001
4 vani GENSCIENCE-002
5 Вани география-001
6 Рави Энг-001
Дайте мне знать , если я пропущу какие-либо столбцы в третьей таблице

Member 12605293

Привет,
Спасибо за быстрый ответ.В третьей таблице мне не нужен идентификатор, только имя и код отдела...И я не хочу использовать JOIN ,в примере запроса, который вы дали, есть JOIN.Если новый кандидат присоединился, значит, он должен быть добавлен динамически.

vani suresh

Привет,

Пожалуйста, проверьте запрос, который я только извлекаю имя и код отдела и вставляю в третью таблицу,
Внутри третьей таблицы у него есть свой собственный идентификатор (автоматическое приращение).Но это зависит от вас, дизайн третьего стола.

vani suresh

Привет,

Пожалуйста, проверьте запрос, обновленный в соответствии с вашими комментариями.