Jayanta Modak Ответов: 1

Как использовать подзапрос в основном запросе


У меня есть две таблицы 1)Покупка(имя - TBL_Pur_Invdet) 2)продажа(имя - TBL_Sale_Invdet)

я хочу показать общее количество покупок, количество продаж, возврат покупок, возврат продаж в одном запросе.

Я использую SQL server 2008 R2
пожалуйста, помогите мне......

Что я уже пробовал:

основной запрос---
select   c.catnm,i.itemnm,i.opnstk,u.untnm,(i.ITMcgst*2) as StkGSTRate from tbl_item as i
INNER JOIN tblcat  AS c   ON c.catid=i.ITMcatid    
INNER JOIN tblsubcat  AS sc   ON sc.subcatid=i.ITMsubcatid 
INNER JOIN tblUnit  AS u   ON u.untid=i.ITMcatid   
INNER JOIN TBL_pur_invdet  AS pd   ON pd.ItemIDpur =i.itemid

Sub-query
select distinct ItemIDpur,sum(PDQty )As purchaseQty,p_type  FROM TBL_pur_invdet where p_type='P' group by ItemIDpur,p_type
union all
select distinct ItemIDsale,sum(sDQty )As SaleQty,S_type  FROM TBL_sale_invdet where S_type='S' group by ItemIDsale,S_type
UNION ALL
select distinct ItemIDpur,sum(PDQty ) As purchaseReturnQty,p_type  FROM TBL_pur_invdet where p_type='PR' group by ItemIDpur,p_type
UNION ALL
select distinct ItemIDsale,sum(sDQty )As SaleReturnQty,S_type  FROM TBL_sale_invdet where S_type='SR' group by ItemIDsale,S_type

Santosh kumar Pithani

пожалуйста поделитесь записями данных и ожидаемым результатом так что его легко дать ответ

Jayanta Modak

https://ibb.co/bYyEvx


Как добавить подзапрос в основной запрос
я пишу подзапрос для проверки это работа или нет
да, это работа, но привычка добавлять подзапрос в основной запрос означает, что когда я запускаю основной запрос, я вижу все поле в результате

Jayanta Modak

прости! запись данных означает детали таблицы ?

Suvendu Shekhar Giri

Вы не упомянули о проблеме, это просто требование.

Jayanta Modak

https://ibb.co/bYyEvx

Как добавить подзапрос в основной запрос
я пишу подзапрос для проверки это работа или нет
да, это работа, но привычка добавлять подзапрос в основной запрос означает, что когда я запускаю основной запрос, я вижу все поле в результате

Jayanta Modak

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

Santosh kumar Pithani

вы не меняли никакой связи между двумя запросами, но я советую вам попробовать использовать скалярные подзапросы.

Jayanta Modak

Сэр, пожалуйста, простите меня, я не знаю, как присоединиться или связь между двумя запросами, пожалуйста, помогите мне, пожалуйста, поделитесь каким-нибудь примером или помогите, пожалуйста, сэр

1 Ответов

Рейтинг:
2

Santosh kumar Pithani

--i don't know relation but i have tried for OP 
select   c.catnm,i.itemnm,i.opnstk,u.untnm,(i.ITMcgst*2) as StkGSTRate,
(select sum(PDQty )As purchaseQty
      FROM TBL_pur_invdet T where p_type='P' AND 
             T.ItemIDpur=pd.ItemIDpur  group by ItemIDpur,p_type) AS purchasequantity,
(select sum(sDQty )As SaleQty 
     FROM TBL_sale_invdet T where S_type='S' AND 
             T.ItemIDsale=pd.ItemIDpur   group by ItemIDsale,S_type) AS salesQty,
(select sum(PDQty ) As purchaseReturnQty  
    FROM TBL_pur_invdet T  where p_type='PR' AND T.ItemIDpur=pd.ItemIDpur group by 
                                                ItemIDpur,p_type)AS PurchaseReturns,
(select sum(sDQty )As SaleReturnQty
    FROM TBL_sale_invdet T where S_type='SR' AND T.ItemIDsale=pd.ItemIDpur group by 
                                                 ItemIDsale,S_type) AS saleReturns
 from tbl_item as i
INNER JOIN tblcat  AS c   ON c.catid=i.ITMcatid    
INNER JOIN tblsubcat  AS sc   ON sc.subcatid=i.ITMsubcatid 
INNER JOIN tblUnit  AS u   ON u.untid=i.ITMcatid   
INNER JOIN TBL_pur_invdet  AS pd   ON pd.ItemIDpur =i.itemid


Jayanta Modak

спасибо сэр за помощь и ответ,
здесь "p_type='P'" означает , что это покупка, и я хочу, чтобы пункт мудрый покупка кол-во (например, я покупаю 'abc' пункт пять(5) раз (2,4,5,7,9), а затем показать покупку кол-во 27) так же, как продажа, возврат покупки, а также столбец возврата продажи.

Santosh kumar Pithani

Выполните вышеописанное решение, которое вы поймете.

Jayanta Modak

Здравствуйте сэр
спасибо
для ответа это работа, но Сэр, почему вы используете каждый где "Т.ItemIDpur=pd.ItemIDpur для покупки T. ItemIDsale=pd.ItemIDpur for sale" "pd.ItemIDpur" этот идентификатор берется из таблицы сведений о покупке, которую вы используете при расчете количества продажи

и
у меня есть 174 элемента примыкающих после выполнения запроса 338 строк
пожалуйста, помогите мне .......
я не знаю хорошего английского языка, поэтому, пожалуйста, простите меня, и мой запрос касается обновления моих знаний, не думайте, что другие