You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

指定日期园区弹珠库存查询SQL语句问题求助

园区弹珠库存查询需求与SQL实现

需求

获取指定日期(@date = '2023-12-20')下园区1或园区6的弹珠库存,核心规则:截至2023-12-20已到达目标园区的弹珠,需剔除截至该日期已从该园区运出的弹珠。

相关表结构

  • 表 LettreVoiture:包含字段idlv(运单ID)、lieuxdepart(出发园区)、lieuxarriver(到达园区)、datedepart(出发日期)、datearrive(到达日期)
  • 表 LettreVoitureLigne:包含字段idlvr(运单明细ID)、idlv(关联运单ID)、idbille(关联弹珠ID)
  • 表 bille:包含字段idbille(弹珠ID)

园区时间参数

  • 园区1:
    • 出发日期:'2023-12-12'
    • 到达日期:'2023-12-20'
  • 园区6:
    • 到达日期:'2023-12-14'
    • 出发日期:'2023-12-18'

已编写的SQL语句

SELECT DISTINCT
    b.idpreparation AS idb, es.description_essence, 
    pp.codebar_grume, pp.num_colis,    
    b.affectation_bil, l.description_licence, 
    l.idlicence, pp.longueur_prepa AS longu,
    pp.diam_gb_prepa AS GB, pp.diam_pb_prepa AS PB, 
    pp.volume_prepa AS volume, '', 'Arrivée par LV' AS etat,
    LV.datelv, LV.datearriverlv AS datess, LV.idlv 
FROM 
    lettre_voiture_ligne_grume LVR
JOIN
    lettre_voiture_grume LV ON LV.idlv = LVR.idlv 
JOIN 
    billage b ON b.idpreparation = LVR.idbille 
JOIN 
    preparation_pied pp ON pp.idpreparation = b.idpreparation 
LEFT JOIN 
    essence es ON es.idessence = pp.idessence
LEFT JOIN 
    licence l ON l.idlicence = pp.idlicence
WHERE 
    LV.datearriverlv <= '2023-12-20' 
    AND LV.lieuxarrive = 6
    AND pp.idpreparation NOT IN (SELECT idbille 
                                 FROM lettre_voiture_ligne_grume LVR 
                                 JOIN lettre_voiture_grume LV ON LV.idlv = LVR.idlv 
                                 WHERE LV.lieuxdepart = 6 AND LV.datelv <= '2023-12-20')

补充说明

当前SQL仅针对园区6实现了需求逻辑:筛选截至2023-12-20已到达园区6的弹珠,同时排除掉截至该日期已从园区6运出的弹珠。若要覆盖园区1的需求,需调整WHERE条件,新增园区1的判断逻辑,示例如下:

SELECT DISTINCT
    b.idpreparation AS idb, es.description_essence, 
    pp.codebar_grume, pp.num_colis,    
    b.affectation_bil, l.description_licence, 
    l.idlicence, pp.longueur_prepa AS longu,
    pp.diam_gb_prepa AS GB, pp.diam_pb_prepa AS PB, 
    pp.volume_prepa AS volume, '', 'Arrivée par LV' AS etat,
    LV.datelv, LV.datearriverlv AS datess, LV.idlv 
FROM 
    lettre_voiture_ligne_grume LVR
JOIN
    lettre_voiture_grume LV ON LV.idlv = LVR.idlv 
JOIN 
    billage b ON b.idpreparation = LVR.idbille 
JOIN 
    preparation_pied pp ON pp.idpreparation = b.idpreparation 
LEFT JOIN 
    essence es ON es.idessence = pp.idessence
LEFT JOIN 
    licence l ON l.idlicence = pp.idlicence
WHERE 
    -- 匹配到达园区1或6且在指定日期前到达的记录
    ((LV.lieuxarrive = 1 AND LV.datearriverlv <= '2023-12-20')
     OR (LV.lieuxarrive = 6 AND LV.datearriverlv <= '2023-12-20'))
    -- 排除已从对应园区在指定日期前运出的弹珠
    AND pp.idpreparation NOT IN (
        SELECT idbille 
        FROM lettre_voiture_ligne_grume LVR 
        JOIN lettre_voiture_grume LV ON LV.idlv = LVR.idlv 
        WHERE 
            (LV.lieuxdepart = 1 AND LV.datelv <= '2023-12-20')
            OR (LV.lieuxdepart = 6 AND LV.datelv <= '2023-12-20')
    )

内容的提问来源于stack exchange,提问作者RL79

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 16:34:56