SQL 查询中涉及的表及其作用说明:
涉及的数据库表
| 表名 | 别名/用途 | 关联关系 | 
|---|---|---|
dbo.s_order | SO(主表) | 存储订单主信息(订单号、日期、客户等) | 
dbo.s_orderdetail | SoD(订单明细) | 通过 billid = SO.billid 关联主订单,存储订单明细(产品、数量、价格等) | 
dbo.l_goods | FG(货品信息) | 通过 goodsid = SoD.goodsid 关联订单明细,存储货品编码、名称、规格等 | 
dbo.l_employ | Employee(业务员信息) | 通过 empid = SO.empid 关联订单主表,存储业务员姓名 | 
dbo.l_trader | BP(客户信息) | 通过 traderid = SO.traderid 关联订单主表,存储客户编码、名称等 | 
dbo.l_area | Area(客户所属地区)Area_A(上级地区) | Area 关联客户表 BP.areaid,Area_A 通过 Area.parentid 自关联层级地区 | 
dbo.l_brand | brand(品牌信息) | 通过 brandid = FG.brandid 关联货品表,存储品牌名称 | 
dbo.l_goodsunit | SO1(货品单位信息) | 通过 goodsid = FG.goodsid 关联货品表,筛选基础单位(isbase=1, unittype=0) | 
l_tradertype | BPTYPE(客户类型) | 通过 tradetypeid = BP.tradetypeid 关联客户表,存储客户类型名称 | 
i_goodsc | SC(货品调价信息) | 通过 code = FG.code 关联货品表,存储调价日期和价格 | 
I_AREAP | areap(2024省区映射) | 通过 code = BP.code 关联客户表,存储省区信息 | 
关键字段说明
-  
订单主表 (
s_order):billdate:订单日期billcode:订单号traderid:客户ID(关联l_trader)
 -  
订单明细表 (
s_orderdetail):quantity:订单数量taxprice:含税单价userdef1:订单行类型(用于计算销售业绩、其他收入等)
 -  
客户表 (
l_trader):areaid:客户所属地区ID(关联l_area)code:客户编码(关联I_AREAP)
 -  
货品表 (
l_goods):brandid:品牌ID(关联l_brand)guserdef4/guserdef6/guserdef7:自定义字段(板块、产品系列、品牌字号)
 
关联关系示意图
s_order (SO) 
├── s_orderdetail (SoD) 
│   └── l_goods (FG) 
│       ├── l_brand (brand)
│       └── l_goodsunit (SO1)
├── l_employ (Employee)
├── l_trader (BP)
│   ├── l_area (Area) 
│   │   └── l_area (Area_A)  -- 自关联上级地区
│   ├── l_tradertype (BPTYPE)
│   └── I_AREAP (areap)
└── i_goodsc (SC)  -- 通过货品编码关联
 
需要注意的问题
-  
表别名冲突:
l_area表被使用了两次(Area和Area_A),用于实现地区层级关系。
 -  
重复的 CASE 逻辑:
SoD.userdef1的WHEN '合同物料'条件重复出现,需确认是否为逻辑错误。
 -  
LEFT JOIN 风险:
- 部分 LEFT JOIN 可能导致空值(如 
Employee表未关联到数据时,业务员字段为 NULL)。 
 - 部分 LEFT JOIN 可能导致空值(如