一条sql语句,不知道怎么写啦


--SELECT * FROM BS_GoodsInfo 商品信息
--
GO
--
SELECT * FROM BS_Customer 客户信息
--
GO
--
SELECT * FROM BS_DisSaleSystem  特价促销价格体系
--
GO
--
SELECT * FROM BS_DisPriceType 特价促销价格体系类别
--
GO
--
SELECT * FROM BS_DisSaleGoods 特价促销价格体系商品
--
GO
--
select * from BS_ConPriceSystem  客户合同价格体系表
--
go
--
select * from BS_ConPriceType 
--
go
--
select * from BS_ConPriceGoods 客户合同价格体系商品

--go
DECLARE @iSDisPrice as int        --这个是为了判断是不是有促销价格
DECLARE @iSConPrice as int        --这个是为了判断是不是有合同价格
declare @DisPriceDate as int    --这个是为了标志是不是在这个时间范围里.
declare @BeforePrice as int        --这个是为了判断是不是上一次价格
--
这里判断是不是有促销价格
SET @iSDisPrice = (SELECT COUNT(*FROM BS_DisSaleSystem where CustID = '8566363' AND CompanyID = '0111102')
if @iSDisPrice > 0 
begin
    
--这里判断在这个时间里是不是有促销价格
    set @DisPriceDate = (select count(*from BS_DisPriceType where TypeCode in (SELECT TypeCode FROM BS_DisSaleSystem where CustID = '8566363' AND CompanyID = '002'and CompanyID = '002' and frmdate <= getdate() and  getdate()<= ToDate )
    
if @DisPriceDate > 0
    
begin
        
--SELECT * FROM BS_DisSaleGoods where CompanyID = '002'  and TypeCode in (select TypeCode from BS_DisPriceType where TypeCode in (SELECT TypeCode FROM BS_DisSaleSystem where CustID = '8566363' AND CompanyID = '002') and CompanyID = '002' and frmdate <= getdate() and  getdate()<= ToDate )
        SELECT isnull(a.conPrice,0as Price, * from View_dSaleBill INNER JOIN (SELECT * FROM BS_DisSaleGoods where CompanyID = '002'  and TypeCode in (select TypeCode from BS_DisPriceType where TypeCode in (SELECT TypeCode FROM BS_DisSaleSystem where CustID = '8566363' AND CompanyID = '002'and CompanyID = '002' and frmdate <= getdate() and  getdate()<= ToDate )) A ON A.CompanyID = View_dSaleBill.CompanyID and a.GoodsID = View_dSaleBill.GoodsID and View_dSaleBill.companyId = '002' 
--    goto dis_goto
    end
end
else 
    
begin
        
--这里判断是不是有合同价格
        SET @iSConPrice = (SELECT COUNT(*FROM BS_ConPriceSystem where CustID = '8566363' AND CompanyID = '002')
        
if @iSConPrice > 0
            
begin
                
/* 1. 不知道怎么在这里排出促销价格的商品  */
                
--这里是取出它的合同价格出来,
                --select * from BS_ConPriceType where TypeCode in (SELECT TypeCode FROM BS_ConPriceSystem where CustID = '8566363' AND CompanyID = '002') and CompanyID = '002'
                select isnull(b.conPrice,0as Price,* from View_dSaleBill INNER JOIN (SELECT * FROM BS_ConPriceGoods where typeCode in (select typeCode from BS_ConPriceSystem where companyID = '002' and custId = '8566363'and companyID = '002'as b on b.CompanyId = View_dSaleBill.CompanyId and b.goodsId = View_dSaleBill.goodsId where b.companyId = '002' 
                
--print @iSConPrice
            end
        
else
            
begin
                
/* 2. 不知道怎么在这里排出促销价格及的合同价格商品  */
                
--这里取出自定议上次价格
                set @BeforePrice = (select count(sBillNo) as sBillNo from bs_SaleBill where CustID = '8566363' and companyID = '002')
                
if @BeforePrice > 0
                    
begin
                        
select c.NoTaxPrice as Price,* from View_dSaleBill inner join (SELECT NoTaxPrice,GoodsID,CompanyId FROM bs_dSaleBill where companyId = '002' and sBillNo = (select max(sBillNo) as sBillNo from bs_SaleBill where CustID = '8566363' and companyID = '002'and GoodsID = '002' ) as c on c.CompanyId = View_dSaleBill.CompanyId and c.GoodsId = View_dSaleBill.GoodsId and View_dSaleBill.CompanyId = '002'
                    
end
                
else
                    
/*3. 不知道怎么在这里排出促销价格,合同价格商品,上次输入价格  */ 
                    
--这里的价格为0
                    begin
                        
select '0' as Price,* from View_dSaleBill inner join (SELECT NoTaxPrice,GoodsID,CompanyId FROM bs_dSaleBill where companyId = '002' and sBillNo = (select max(sBillNo) as sBillNo from bs_SaleBill where CustID = '8566363' and companyID = '002'and GoodsID = '002' ) as c on c.CompanyId = View_dSaleBill.CompanyId and c.GoodsId = View_dSaleBill.GoodsId and View_dSaleBill.CompanyId = '002'
                    
end
            
end
    
end
--dis_goto: SELECT isnull(a.conPrice,0) as Price, * from View_dSaleBill INNER JOIN (SELECT * FROM BS_DisSaleGoods where CompanyID = '002'  and TypeCode in (select TypeCode from BS_DisPriceType where TypeCode in (SELECT TypeCode FROM BS_DisSaleSystem where CustID = '8566363' AND CompanyID = '002') and CompanyID = '002' and frmdate <= getdate() and  getdate()<= ToDate )) A ON A.CompanyID = View_dSaleBill.CompanyID and a.GoodsID = View_dSaleBill.GoodsID
--
select isnull(b.conPrice,0), * from View_dSaleBill INNER JOIN (SELECT * FROM BS_ConPriceGoods where typeCode in (select typeCode from BS_ConPriceSystem where companyID = '002' and custId = '8566363') and companyID = '002') as b on b.CompanyId = View_dSaleBill.CompanyId and b.goodsId = View_dSaleBill.goodsId where b.companyId = '002' 
--
取出自定议上次价格
--
select c.NoTaxPrice as Price,* from View_dSaleBill inner join (SELECT NoTaxPrice,GoodsID,CompanyId FROM bs_dSaleBill where companyId = '002' and sBillNo = (select max(sBillNo) as sBillNo from bs_SaleBill where CustID = '8566363' and companyID = '002') and GoodsID = '002' ) as c on c.CompanyId = View_dSaleBill.CompanyId and c.GoodsId = View_dSaleBill.GoodsId and View_dSaleBill.CompanyId = '002'

 
现在就是在每一次

原文地址:https://www.cnblogs.com/xiaotuni/p/2365748.html