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

SQL Server复杂CASE语句查询:生成指定格式入住迁出报表

SQL Server 查询解决方案

最终SQL语句

SELECT
    apt,
    id,
    MAX(CASE WHEN [IN] = 'yes' THEN StartDay END) AS moveindate,
    MAX(CASE WHEN [OUT] = 'yes' THEN EndDay END) AS moveoutdate,
    MIN(WeekNo) AS weekstart,
    MAX(WeekNo) AS weekend
FROM
    YourTableName  -- 替换为你的实际表名
GROUP BY
    apt, id
HAVING
    MAX([OUT]) IS NOT NULL;

语句说明

  • 分组合并:通过GROUP BY apt, id将同一id(及关联的apt)的所有记录合并为一行。若apt与id并非一一对应,可根据业务逻辑调整分组字段。
  • 入住日期提取:MAX(CASE WHEN [IN] = 'yes' THEN StartDay END)筛选出IN标记为'yes'的StartDay,用MAX确保取到最新的入住日期;若需最早入住日期,可替换为MIN。
  • 搬离日期提取:MAX(CASE WHEN [OUT] = 'yes' THEN EndDay END)同理,提取OUT标记为'yes'的EndDay作为搬离日期。
  • 周数范围计算:MIN(WeekNo)和MAX(WeekNo)分别获取当前id对应的最早和最晚周数。
  • 过滤条件:HAVING MAX([OUT]) IS NOT NULL确保只保留存在非NULLOUT记录的id,过滤掉所有OUT均为NULL的条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:58:21