как объединить 3 таблицы в Postgres SQL - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть три таблицы

Основные записи товара: основные данные магазинов

id integer NOT NULL DEFAULT, primary key
name character varying(255),
description character(255),
price double precision,
tax double precision,
readytosales character(1) DEFAULT 'N'::bpchar,
itemgroupid integer,
uom character varying(30),
quantity double precision DEFAULT 0,

Покупка: подробности покупки магазинов

purchaseid integer NOT NULL DEFAULT,
quantity double precision DEFAULT 0,
purchasemasterid integer NOT NULL,
itemid integer NOT NULL,
itemprice double precision DEFAULT 0.00,

Продажи: подробности продаж магазинов

salesid integer NOT NULL DEFAULT,
quantity double precision DEFAULT 0,
salesmasterid integer NOT NULL,
itemid integer,
itemprice double 

формула, используемая для получения сводной информации об акциях:

itemmaster.quantity + purchase.quantity -sales.quantity 

Я использовал следующий запрос для получения подробной информации, но не смог получить результаты

select im.id as itemid, 
       name as itemname,
       im.quantity as oepningquantity, 
       im.price as openingprice,
       (im.quantity * im.price) as openingbalance,
       p.quantity as purchasequantity, p.itemprice as purchaseprice,
       (p.quantity * p.itemprice)as totalpurchaseprice, 
       s.quantity as salesquanity, s.itemprice as saleprice,
       (s.quantity *s.itemprice)as totalsalesprice
from item_master as im 
  full outer join purchase as p on im.id=p.itemid 
  full outer join sales as s on im.id=s.itemid 

Ответы [ 3 ]

0 голосов
/ 10 декабря 2018

Существует небольшая проблема с вашим запросом.Правильный запрос:

   select im.id as itemid, 
   name as itemname,
   im.quantity as oepningquantity, 
   im.price as openingprice,
   (im.quantity * im.price) as openingbalance,
   p.quantity as purchasequantity, p.itemprice as purchaseprice,
   (p.quantity * p.itemprice)as totalpurchaseprice, 
   s.quantity as salesquanity, s.itemprice as saleprice,
   (s.quantity *s.itemprice)as totalsalesprice

_____ от item_master as im ______ ------- Это утверждение неверно.

   from item_master -- Try This One.

   full outer join purchase as p on im.id=p.itemid 
   full outer join sales as s on im.id=s.itemid 
0 голосов
/ 10 декабря 2018

это будет работать:

       select 
       im.id as itemid, 
       name as itemname,
       im.quantity as oepningquantity, 
       im.price as openingprice,
       (im.quantity * im.price) as openingbalance,
       p.quantity as purchasequantity,
       p.itemprice as purchaseprice,
       (p.quantity * p.itemprice)as totalpurchaseprice, 
       s.quantity as salesquanity, 
       s.itemprice as saleprice,
       (s.quantity *s.itemprice)as totalsalesprice
       from 
       Item master im,
       purchase p,
       sales s 
       where
       im.id=p.itemid and
       im.id=s.itemid; 
0 голосов
/ 10 декабря 2018

Например, у нас есть 3 таблицы.Таблица 1.Таблица 2.table_3.

, а table_2 и table_3 являются ссылками по внешнему ключу из table_1.поэтому, если мы объединим эти три таблицы вместе, запрос будет выглядеть следующим образом.

Select {table 1 Cols} {table 2 Cols} {table 3 Cols}
from table_1
join table_1.table_2ID = table_2.Id on (Specify Condition here)
join table_1.table_3ID = table_3.Id on (Specify Condition here)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...