从SQL表插入和转换数据
发布时间:2020-12-12 16:23:49 所属栏目:MsSql教程 来源:网络整理
导读:我有一个问题一直困扰着我几天.我有一张桌子: 日期 ID Status_ID Start_Time End_Time Status_Time(秒)(他们如何处于特定状态,以秒为单位) 我想将此数据放在另一个表中,该表将Status_ID分组为列.此表包含如下列: 日期 ID 午餐(以秒为单位) 休息(以秒为单位)
我有一个问题一直困扰着我几天.我有一张桌子:
>日期 我想将此数据放在另一个表中,该表将Status_ID分组为列.此表包含如下列: >日期 因此,Status_ID 2和3可能会在休假,Status_ID 1午餐等分组. 我曾想过在一个while循环中嵌套一个Case,遍历每一行以插入到我的另一个表中.但是,我无法将这些数据从行中的Status_ID插入到现在按其分组的列中. 解决方法不需要WHILE循环.SELECT date,id,SUM(CASE WHEN status_id = 1 THEN status_time ELSE 0 END) AS lunch,SUM(CASE WHEN status_id = 2 THEN status_time ELSE 0 END) AS break,SUM(CASE WHEN status_id = 3 THEN status_time ELSE 0 END) AS vacation FROM My_Table GROUP BY date,id 此外,将status_time保留在表中是一个错误(除非它是非持久的计算列).您实际上是将相同的数据存储在数据库中的两个位置,这最终会导致不一致.将此数据推送到另一个表中也是如此,其中按状态类型划分时间.不要创建新表来保存数据,使用查询在需要时获取数据. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |