-
Ув. мастера. Помогите создать правильное представление. В БД есть таблицы ITEMS c полями id_code, xxx_1, xxx_2 и т.д. и TABLECALC с полями id_code, id_items (связь с таблицей ITEMS), tc_itemsale (кол-во товара на продаже)
Необходимо создать новое представление VIEW_SALE в котором будут перебираться все строки из таблицы TABLECALC, складываться значения поля tc_itemsale, если id_items равны.
-
select sum(tc_itemsale) from tablecalc group by id_items
-
Что-то я не смог применить для своего варианта. Можно я код напишу, чтобы мож понятней было, что мне надо.
CREATE VIEW VIEW_ITEMS_PR(
ID_CODE,
ID_ITEM,
VI_NAME,
VI_CODE,
VI_PROD)
AS
select
source.id_code, source.id_goods, goods.t_name, goods.t_ident1, sum(ITEM_PRODREZ.ipr_prod)
from
source, ITEM_PRODREZ, goods
where
ITEM_PRODREZ.id_item = source.id_goods and
goods.id_code = source.id_goods
;
Вот типа того, что надо, но тут ошибка. Помогите плиз.
-
SELECT
Src.ID_CODE,
Src.ID_GOODS,
G.T_NAME,
G.T_IDENT1,
SUM(IP.IPR_PROD)
FROM
SOURCE Src, ITEM_PRODREZ Ip, GOODS G
WHERE
IP.ID_ITEM = Src.ID_GOODS AND
G.ID_CODE = Src.ID_GOODS
GROUP BY Src.ID_CODE, Src.ID_GOODS, G.T_NAME, G.T_IDENT1
-
Или так, с явными джойнами. SELECT
Src.ID_CODE,
Src.ID_GOODS,
G.T_NAME,
G.T_IDENT1,
SUM(IP.IPR_PROD)
FROM
SOURCE Src
INNER JOIN ITEM_PRODREZ Ip ON IP.ID_ITEM = Src.ID_GOODS
INNER JOIN GOODS G ON G.ID_CODE = Src.ID_GOODS
WHERE
GROUP BY Src.ID_CODE, Src.ID_GOODS, G.T_NAME, G.T_IDENT1
-
в последнем варианте WHERE - лишнее, пропустил.
-
РЕСПЕКТ. Спасибо. все сошлось :)
-
АЖ странно!
|