关联查询依靠子表类型求和
现在有2张数据库表,主表有字段UID、Name;子表有FK_UID、Type、Value;它们通过主表的UID和子表的FK_UID关联。我想根据子表的Type对Value求和,最终得到UID、Name、ValueType1、ValueType2的查询结果,SQL语句该怎么写
SELECT
m.UID,
m.Name,
SUM(CASE WHEN s.Type = 'Type1' THEN s.Value ELSE 0 END) AS ValueType1,
SUM(CASE WHEN s.Type = 'Type2' THEN s.Value ELSE 0 END) AS ValueType2
FROM
MainTable m
JOIN SubTable s ON m.UID = s.FK_UID
GROUP BY
m.UID,
m.Name
这个查询语句将主表和子表连接起来,然后使用SUM和CASE语句对子表中的值进行求和。最后,使用GROUP BY对结果进行分组,以便按UID和Name列进行聚合。