随笔 - 166  文章 - 0 评论 - 292 阅读 - 15万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go



-- =============================================
--
 Author:        CHENQP
--
 Create date: 9:37 2006-10-30
--
 Description:    获取挑选库存货位信息查询、用于领导决策系统
--
 交叉实现七行并成一行
--
 =============================================
ALTER PROCEDURE [dbo].[usp_TBManagerQuery_GetResortedTLWarehouse] 
    
@strWhere  varchar(1500= ''  -- 查询条件 (注意: 不要加 where)
AS
BEGIN
    
SET NOCOUNT ON;
    
declare @strSQL   varchar(5000)       -- 主语句  
    Create Table #TMPTABLE_1(IDD int identity(1,1),
    V_GoodsPlace 
VARCHAR(50) ,I_Package INT ,
    N_Weight 
DECIMAL(18,3),V_OutGrade VARCHAR(50),
    V_Customer 
VARCHAR(50),V_PurchaseType VARCHAR(50),V_AreaName VARCHAR(50))
  
if @strWhere !=''  
    
set @strSQL = '
    INSERT INTO #TMPTABLE_1
        SELECT V_GoodsPlace,
            COUNT(*) as I_Package,
            SUM(N_Weight) as N_Weight,
            V_OutGrade,
            V_Customer,
            V_PurchaseType,
            dbo.FUN_GetProductionAreaName(I_OutOriginID) AS V_AreaName            
        FROM V_NPick_StorageStream where 
'
    
+ @strWhere + 
    
'GROUP BY V_GoodsPlace,V_OutGrade,V_Customer,V_PurchaseType,I_OutOriginID
        ORDER BY V_GoodsPlace
'
else
    
begin
  
set @strSQL = '
    INSERT INTO #TMPTABLE_1
        SELECT V_GoodsPlace,
            COUNT(*) as I_Package,
            SUM(N_Weight) as N_Weight,
            V_OutGrade,
            V_Customer,
            V_PurchaseType,
            dbo.FUN_GetProductionAreaName(I_OutOriginID) AS V_AreaName            
        FROM V_NPick_StorageStream
        GROUP BY V_GoodsPlace,V_OutGrade,V_Customer,V_PurchaseType,I_OutOriginID
        ORDER BY V_GoodsPlace
'
    
end
    
    
execute(@strSQL)    
-- 货位小计信息
    SELECT COUNT(*as GoodsPlaceCnt,SUM(I_Package) as PackageSum,SUM(N_Weight) as WeightSum FROM #TMPTABLE_1    
-- 实现交叉功能
--
 Powred by:CHENQP
--
 Commit Date:11:22 2006-10-30        
SELECT
    V_GoodsPlaceA
=max(case id%7 when 0 then V_GoodsPlace end),
    I_PackageA
=max(case id%7 when 0 then I_Package end),
    N_WeightA
=max(case id%7 when 0 then N_Weight end),
    V_OutGradeA 
=max(case id%7 when 0 then V_OutGrade end),
    V_CustomerA 
=max(case id%7 when 0 then V_Customer end),
    V_PurchaseTypeA
=max(case id%7 when 0 then V_PurchaseType end),
    V_AreaNameA
=max(case id%7 when 0 then V_AreaName end),         
    
    V_GoodsPlaceB
=max(case id%7 when 1 then V_GoodsPlace end),
    I_PackageB
=max(case id%7 when 1 then I_Package end),
    N_WeightB
=max(case id%7 when 1 then N_Weight end),
    V_OutGradeB 
=max(case id%7 when 1 then V_OutGrade end),
    V_CustomerB 
=max(case id%7 when 1 then V_Customer end),
    V_PurchaseTypeB
=max(case id%7 when 1 then V_PurchaseType end),
    V_AreaNameB
=max(case id%7 when 1 then V_AreaName end), 

    V_GoodsPlaceC
=max(case id%7 when 2 then V_GoodsPlace end),
    I_PackageC
=max(case id%7 when 2 then I_Package end),
    N_WeightC
=max(case id%7 when 2 then N_Weight end),
    V_OutGradeC 
=max(case id%7 when 2 then V_OutGrade end),
    V_CustomerC 
=max(case id%7 when 2 then V_Customer end),
    V_PurchaseTypeC
=max(case id%7 when 2 then V_PurchaseType end),
    V_AreaNameC
=max(case id%7 when 2 then V_AreaName end),     

    V_GoodsPlaceD
=max(case id%7 when 3 then V_GoodsPlace end),
    I_PackageD
=max(case id%7 when 3 then I_Package end),
    N_WeightD
=max(case id%7 when 3 then N_Weight end),
    V_OutGradeD 
=max(case id%7 when 3 then V_OutGrade end),
    V_CustomerD 
=max(case id%7 when 3 then V_Customer end),
    V_PurchaseTypeD
=max(case id%7 when 3 then V_PurchaseType end),
    V_AreaNameD
=max(case id%7 when 3 then V_AreaName end), 

    V_GoodsPlaceE
=max(case id%7 when 4 then V_GoodsPlace end),
    I_PackageE
=max(case id%7 when 4 then I_Package end),
    N_WeightE
=max(case id%7 when 4 then N_Weight end),
    V_OutGradeE 
=max(case id%7 when 4 then V_OutGrade end),
    V_CustomerE 
=max(case id%7 when 4 then V_Customer end),
    V_PurchaseTypeE
=max(case id%7 when 4 then V_PurchaseType end),
    V_AreaNameE
=max(case id%7 when 4 then V_AreaName end),

    V_GoodsPlaceF
=max(case id%7 when 5 then V_GoodsPlace end),
    I_PackageF
=max(case id%7 when 5 then I_Package end),
    N_WeightF
=max(case id%7 when 5 then N_Weight end),
    V_OutGradeF 
=max(case id%7 when 5 then V_OutGrade end),
    V_CustomerF 
=max(case id%7 when 5 then V_Customer end),
    V_PurchaseTypeF
=max(case id%7 when 5 then V_PurchaseType end),
    V_AreaNameF
=max(case id%7 when 5 then V_AreaName end),

    V_GoodsPlaceG
=max(case id%7 when 6 then V_GoodsPlace end),
    I_PackageG
=max(case id%7 when 6 then I_Package end),
    N_WeightG
=max(case id%7 when 6 then N_Weight end),
    V_OutGradeG 
=max(case id%7 when 6 then V_OutGrade end),
    V_CustomerG 
=max(case id%7 when 6 then V_Customer end),
    V_PurchaseTypeG
=max(case id%7 when 6 then V_PurchaseType end),
    V_AreaNameG
=max(case id%7 when 6 then V_AreaName end)
    
FROM
      (
SELECT Top 100000 *,
        (
SELECT COUNT(*FROM #TMPTABLE_1 WHERE IDD <= a.IDD) 
            
AS id 
        
FROM #TMPTABLE_1 a ORDER BY V_GoodsPlace,I_Package ) b
        
GROUP BY (b.id-1)/7
        
ORDER BY (b.id-1)/7    
    
END



posted on   记得忘记  阅读(270)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示