Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Нужна помощь в составлении запроса / 6 сообщений из 6, страница 1 из 1
20.05.2012, 09:52
    #37802576
Kostya9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в составлении запроса
Всем, привет!
Задача такая: есть две связанные таблицы: Товар (столбцы: ID_товара, NAME) и покупка (столбцы: ID, ID_товара), вот необходимо сначало из таблицы покупок удалить покупки у которых ID_товара = 0, затем из таблицы товар - удалить товар, так же у которого ID_товара = 0?

Заранее спасибо за ответы и советы!
...
Рейтинг: 0 / 0
21.05.2012, 09:33
    #37803264
xz321
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в составлении запроса
Вот твой пример в SQL
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
create table test.goods (id int not null primary key,name varchar(10));
insert into test.sale_goods values (0,'Молоко'),(1,'Кефир'),(2,'Пиво');
drop table test.sale_goods;
create table test.sale_goods (id int not null primary key,gid int, QTY INT,sale_date timestamp not null default current timestamp);
insert into test.sale_goods (id,gid,qty) values (0,0,1),(1,1,1),(2,2,1);
insert into test.sale_goods (id,gid,qty) values (3,0,1),(4,1,1),(5,2,1);
insert into test.sale_goods (id,gid,qty) values (6,0,1),(7,1,1),(8,2,1);


select * from test.SALE_GOODS a inner join test.GOODS b on a.gid=b.id;
WITH A AS (
select * from OLD TABLE (delete from test.sale_goods where gid=0) t)
, b as  (
select * from OLD TABLE (delete from test.goods where id=0) p)
select * from a inner join b on a.gid=b.id;
commit;
select * from test.SALE_GOODS a inner join test.GOODS b on a.gid=b.id;
...
Рейтинг: 0 / 0
21.05.2012, 12:42
    #37803647
CawaSPb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в составлении запроса
Kostya9,

Эээ... я что-то не понимаю?

Код: plsql
1.
2.
3.
DELETE FROM "покупка" WHERE "ID_товара" = 0;
DELETE FROM "Товар"   WHERE "ID_товара" = 0;
COMMIT;



Или просто удаляем из "Товар", если есть между таблицами referential constraint с опцией ON DELETE CASCADE.
...
Рейтинг: 0 / 0
25.05.2012, 13:25
    #37811482
Kostya9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в составлении запроса
CawaSPb,
Немного не правильно описал, вот так правильнее:
Есть таблица ТОВАР: (ID_товара, NAME_товара, STATUS_товара), где STATUS_товара = 0 или 1 (0 - нет в наличии, 1 - есть в наличии).
И вторая таблица покупок: (ID_покупки, ID_товара)

Задача: сначала, удалить из таблицы покупок ID_покупок, у которых ID_товара нет в наличии, определяется из таблицы товара поле STATUS_товара = 0.
Ну а удалить, из таблицы товаров, смогу.
...
Рейтинг: 0 / 0
25.05.2012, 22:19
    #37812557
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в составлении запроса
Я, конечно, не спец в DB2, хотя очень стремлюсь, но
авторЗадача: сначала, удалить из таблицы покупок ID_покупок, у которых ID_товара нет в наличии, определяется из таблицы товара поле STATUS_товара = 0.
DELETE FROM [ПОКУПКИ] WHERE [ТОВАР_ИД] IN
(
SELECT [ТОВАР_ИД] FROM [ТОВАРЫ] WHERE [STATUS]=0
)
...
Рейтинг: 0 / 0
02.07.2012, 07:36
    #37862344
Kostya9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь в составлении запроса
londinium, спасибо!
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Нужна помощь в составлении запроса / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]