Попытка запустить инвентаризационный запрос с внешним соединением - этот запрос занимает больше времени - PullRequest
0 голосов
/ 03 декабря 2018

Ниже приведен мой запрос для получения предметов инвентаризации и количества.Количество напрямую берется из таблицы общих покупок, вычитаемой из таблицы общих продаж на основе идентификатора товара.

Это выполнение занимает больше времени, чтобы ответить и показать данные о DATAGRIDVIEW кода VB.Net.Мой вопрос, можем ли мы оптимизировать скорость выполнения, чтобы ускорить выполнение.

Мой код VB.net для получения данных с сервера:

            da.SelectCommand = cmd
            dt.Clear()
            da.Fill(dt)
            DataGridView1.DataSource = dt
            con.Close()



Select (SELECT [id] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [ID],
(SELECT [itemname] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [ITEM NAME],
(SELECT [UPC] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [UPC],
(SELECT [CustomUPC] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [CUSTOM UPC],
(SELECT [Description] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS DESCRIPTION,
coalesce(p.sum_qty, 0) - coalesce(s.sum_qty, 0) as [Quantity],
(SELECT [UOM] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS UOM,
(coalesce(p.sum_qty, 0) - coalesce(s.sum_qty, 0)) * ((SELECT CAST([UOMUNIT] AS DECIMAL(18,2)) FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid))) as [Quantity],
(SELECT UOMMeasure FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS SUOM,
(coalesce(p.sum_qty, 0) - coalesce(s.sum_qty, 0))*(SELECT CAST([TUNIT] AS DECIMAL(18,2)) FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) as [Quantity],
(SELECT TUOM FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS TUOM,(SELECT [Cost] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [COST PRICE],
(SELECT [Markup] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [MARKUP%],(SELECT [Selling] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid))AS [SELLING PRICE],
(SELECT [Wholesale] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [WP],
(SELECT [MRP] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS MRP,
(SELECT [GSTP] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [GST%],
(SELECT [ISBill] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [BILLABLE],
(SELECT [Batch] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS BATCH,
(SELECT [Firm] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS FIRM,
(SELECT [Product] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS PRODUCT,
(SELECT [Brand] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS BRAND,
(SELECT [Groupname] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [GROUP],
(SELECT [Cateryname] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [CATEGORY],
(SELECT [HSN] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS HSN,
(SELECT [IncludeFree] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS FREE,
(SELECT [UPCF] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [UPC FREE],
(SELECT [Descf] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [DESC],
(SELECT [UOMUnit] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [UOM-UNIT],
(SELECT [UOMMeasure] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS SUOM,
(SELECT [Reorder] FROM INVENTORY WHERE ID = coalesce(p.itemid, s.itemid)) AS [REORDER] 
from (select inv.ItemName,dp.itemid, sum(cast(dp.qty as numeric(18, 2))) as sum_qty from detailpurchase dp, inventory inv where dp.itemid=inv.id  group by dp.itemid,inv.ItemName ) p full outer join 
( select inv.ItemName,ds.itemid, sum(cast(ds.qty as numeric(18, 2))) as sum_qty   from detailsale ds, inventory inv where ds.itemid = inv.id    group by ds.ITEMID,inv.ItemName ) s on s.ITEMID = p.ITEMID order by s.itemname,p.ItemName asc
...