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

Заранее спасибо за ответы и советы!
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #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
Нужна помощь в составлении запроса
    #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
Нужна помощь в составлении запроса
    #37811482
Kostya9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CawaSPb,
Немного не правильно описал, вот так правильнее:
Есть таблица ТОВАР: (ID_товара, NAME_товара, STATUS_товара), где STATUS_товара = 0 или 1 (0 - нет в наличии, 1 - есть в наличии).
И вторая таблица покупок: (ID_покупки, ID_товара)

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


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