Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с заполнением T-SQL 
:(
    Опции темы
Erick
Дата 30.5.2005, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 19.5.2005

Репутация: нет
Всего: нет



Цитата

Заполните таблицу STUDENTS_1 данными только для отличников из таблицы STUDENTS (признаком является наличие только отличных оценок в таблице USP).

Пишу запрос:
Код

INSERT INTO STUDENTS_1
SELECT *
FROM STUDENTS
WHERE USP.SNUM=STUDENTS.SNUM
AND USP.OCENKA=5;

В сообщениях:
Цитата

Server: Msg 107, Level 16, State 3, Line 1
The column prefix 'USP' does not match with a table name or alias name used in the query.
Server: Msg 107, Level 16, State 1, Line 1
The column prefix 'USP' does not match with a table name or alias name used in the query.

Почему smile
PM MAIL   Вверх
HalkaR
Дата 30.5.2005, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



А что за таблица USP участвует в запросе?
Код

INSERT INTO STUDENTS_1
SELECT *
FROM STUDENTS, USP
WHERE USP.SNUM=STUDENTS.SNUM
AND USP.OCENKA=5;
Возможно надо внести такое исправление.
PM MAIL   Вверх
Erick
Дата 30.5.2005, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 19.5.2005

Репутация: нет
Всего: нет



Column name Datatype Length Precision Scale
UNUM Int 4 10 0
OCENKA Tinyint 1 3 0
UDATE Smalldatatime 4 0 0
SNUM Int 4 10 0
PNUM Smallint 2 5 0

Эта таблица ссвязана по полю SNUM с STUDENTS.
Цитата

FROM STUDENTS, USP


Данные должны браться только со STUDENTS.
PM MAIL   Вверх
simanyay
Дата 30.5.2005, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: нет
Всего: 36



Код

INSERT INTO STUDENTS_1
SELECT STUDENTS.*  /* Если это возможно */
FROM STUDENTS, USP
WHERE USP.SNUM=STUDENTS.SNUM
AND USP.OCENKA=5;





--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
Erick
Дата 30.5.2005, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 19.5.2005

Репутация: нет
Всего: нет



simanyay Получилось, спасибо.
PM MAIL   Вверх
simanyay
Дата 30.5.2005, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: нет
Всего: 36



Цитата(Erick @ 31.5.2005, 00:21)
simanyay Получилось, спасибо.


anytime


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
Erick
Дата 30.5.2005, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 19.5.2005

Репутация: нет
Всего: нет



Еще вопросик:
Продолжение
Цитата

Заполните таблицу USP_1 остальными данными из таблицы USP

Пишу:
Код

INSERT INTO USP_1
SELECT *
FROM USP
WHERE USP.OCENKA<5;

Messages:
Цитата

Server: Msg 547, Level 16, State 1, Line 1
INSERT statement conflicted with COLUMN FOREIGN KEY constraint 'FK_PNUM'. The conflict occurred in database 'EDUCATION', table 'PREDMET_1', column 'PNUM'.
The statement has been terminated.

smile
PM MAIL   Вверх
simanyay
Дата 30.5.2005, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: нет
Всего: 36



Посмотри в таблицу PREDMET_1. У тебя констраинты между таблицами конфликтуют
Добавлено @ 23:01
А лучше давай сюда результаты:
Код

DESC PREDMET_1;
DESC USP;



--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
HalkaR
Дата 30.5.2005, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



Такого значения PNUM в таблице Education нет, а должно быть т.к. это внешний ключ.
Добавлено @ 23:03
Код

INSERT INTO USP_1
SELECT *
FROM USP
WHERE USP.OCENKA<5 AND PNUM IN (SELECT DISTINCT PNUM FROM EDUCATION)

так ты вставишь те записи PNUM которых есть в EDUCATION
PM MAIL   Вверх
Erick
Дата 30.5.2005, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 19.5.2005

Репутация: нет
Всего: нет



В PREDMET_1 PNUM первичный ключ, а в USP он должен быть внешним ключом, но в констраинте почему-то внешний ключ записан как FK_USP_PREDMET. Наверное потомучто я связи делал в диаграмме. Может в этом проблема? Но в USP_1 внешний ключ PNUM.
PM MAIL   Вверх
Erick
Дата 31.5.2005, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 19.5.2005

Репутация: нет
Всего: нет



Да, скорее всего всё дело в разных названиях ключей. Просто таблицы: STUDENTS, PREDMET, TEACHERS, USP создавались вручную. Первичные ключи у них тоже создавались вручную. Связи и соответсвенно внешние ключи, тоже создавались вручную в диаграммах. Таблицы:STUDENTS_1, PREDMET_1, TEACHERS_1, USP_1 имеют такие же поля и типы, что и перечисленные ранее таблицы, но они создавались вместе с первичными и внешними ключами в Query Analyzer. И названия некоторых ключей у них другие. Так что, надо менять название ключей или можно как-то "пошаманить" в самом запросе? Если надо менять названия ключей, то как это сделать? Через запрос я знаю, а как вручную?

PM MAIL   Вверх
simanyay
Дата 31.5.2005, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: нет
Всего: 36



Выведи результы тех запросов, которые я просил. Пожалуйста.


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
Erick
Дата 31.5.2005, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 19.5.2005

Репутация: нет
Всего: нет



simanyay А где это писать? Пишу в Query Anayzer, но выдаёт ошибку:
Цитата

Server: Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'DESC'.



PM MAIL   Вверх
simanyay
Дата 31.5.2005, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: нет
Всего: 36



Гымс, а в MS SQL нет DESC ... что-ли? Попробуй DESCRIBE


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
Erick
Дата 31.5.2005, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 19.5.2005

Репутация: нет
Всего: нет



Тоже самое, но DESCRIBE даже не подсвечивается.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0964 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.