显示股票详细信息

时间:2017-07-06 13:48:46

标签: sql-server

我正在尝试显示MRP,销售率,税额等库存详情。

我使用了三个网格视图在我的表单中输入。他们是,

  1. GV Purchase
  2. GV产品详细信息 - (用于显示产品名称和产品代码)
  3. GV股票详细信息 - (用于显示数量,MRP,销售价格等)
  4. 我使用SQL Query在网格视图中填充数据库记录。

    我从表格中的产品网格视图中选择产品A,股票网格将显示产品A的相应数据

    我的数据库记录,

       code   Name  QTY  MRP    S.Rate
    
       aa11   Pro A  5  120.00  130.00
    
       aa11   Pro A  2  130.00  150.00
    
       aa12   Pro B  4  100.00  110.00
    
       aa13   Pro C  2   50.00   60.00
    

    当我在表单中的GV产品详细信息中选择Pro A. GV股票详情将显示为Pro A的QTY,MRP,S.Rate

    但是我的查询会像这种格式一样返回

        aa11 Pro A  5  120.00  130.00 
    
                    2   130.00  150.00
    
                    4   100.00   110.00
    
                    2     50.00    60.00 
    

    这是我的查询,

       select s.*,iif( d.NewSalePrice is null,s.saleprice1,d.NewSalePrice)as NewSalePrice,Pdate from (select s.*,p.ProductFullName,p.ProductCode from Stock s,Product p where s.productfullcode=p.ProductFullCode) s left join(select Productfullcode,MRP,PUnitPrice,NewSalePrice,Pdate from DailyPricing ) d on s.ProductFullCode=d.ProductFullCode where  s.MRP=d.MRP and s.UnitPrice=d.PUnitPrice and Pdate=(select MAX(Pdate) from DailyPricing where  PUnitPrice=s.UnitPrice and mrp=s.MRP and ProductFullCode=s.ProductFullCode) order by ProductFullCode
    

    如何获得仅与Pro A匹配的股票详细信息

    注意:这些表格式只是我的表格的模型

    先谢谢,

    Vinayak vk。: - )

1 个答案:

答案 0 :(得分:0)

您可以简化查询,并为您需要的产品名称添加where子句。

没有针对模拟数据测试它,但是像这样的SQL:

select 
    s.*, 
    p.ProductFullName, 
    p.ProductCode,
    coalesce(d.NewSalePrice, s.saleprice1) as SalePrice,
    max(d.Pdate) over (partition by p.ProductFullCode, s.mrp, s.UnitPrice) as MaxPdate
from Product p 
join Stock s on s.productfullcode = p.ProductFullCode
join DailyPricing d on (s.ProductFullCode = d.ProductFullCode and s.MRP = d.MRP and s.UnitPrice = d.PUnitPrice)
where p.ProductFullName = 'Pro A'
order by p.ProductFullCode