SQL 查询中涉及的表及其作用说明

发布于:2025-04-12 ⋅ 阅读:(86) ⋅ 点赞:(0)

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.areaidArea_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 关联客户表,存储省区信息

关键字段说明

  1. 订单主表 (s_order)

    • billdate:订单日期
    • billcode:订单号
    • traderid:客户ID(关联 l_trader
  2. 订单明细表 (s_orderdetail)

    • quantity:订单数量
    • taxprice:含税单价
    • userdef1:订单行类型(用于计算销售业绩、其他收入等)
  3. 客户表 (l_trader)

    • areaid:客户所属地区ID(关联 l_area
    • code:客户编码(关联 I_AREAP
  4. 货品表 (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)  -- 通过货品编码关联

需要注意的问题

  1. 表别名冲突

    • l_area 表被使用了两次(AreaArea_A),用于实现地区层级关系。
  2. 重复的 CASE 逻辑

    • SoD.userdef1WHEN '合同物料' 条件重复出现,需确认是否为逻辑错误。
  3. LEFT JOIN 风险

    • 部分 LEFT JOIN 可能导致空值(如 Employee 表未关联到数据时,业务员字段为 NULL)。


网站公告

今日签到

点亮在社区的每一天
去签到