如何解决在mysql查询中计算SUM作为别名字段
原始查询是:
SELECT event_date.Meta_value AS 'Event Date',ugm.group_id AS 'Gig ID',p_title.post_title AS 'Client',event_venue.Meta_value AS 'Venue',wum_l.Meta_value last_name,wum_f.Meta_value first_name,wum_m.Meta_value AS 'Miles',wum_mp.Meta_value AS 'Mileage Pay',wum.Meta_value AS 'Gig Pay'
FROM wp_users wu
INNER JOIN wp_um_groups_members ugm
ON ugm.user_id1 = wu.id
LEFT JOIN wp_userMeta wum
ON wu.id = wum.user_id
AND wum.Meta_key = CONCAT('um_groups_',ugm.group_id,'_price')
LEFT JOIN wp_userMeta wum_f
ON wu.id = wum_f.user_id
AND wum_f.Meta_key = 'first_name'
LEFT JOIN wp_userMeta wum_l
ON wu.id = wum_l.user_id
AND wum_l.Meta_key = 'last_name'
LEFT JOIN wp_posts p_title
ON p_title.id = ugm.group_id
LEFT JOIN wp_userMeta wum_m
ON wu.id = wum_m.user_id
AND wum_m.Meta_key = CONCAT('_um_groups_','_mileage')
LEFT JOIN wp_userMeta wum_mp
ON wu.id = wum_mp.user_id
AND wum_mp.Meta_key = CONCAT('um_groups_','_mileage_price')
LEFT JOIN wp_postMeta event_date
ON event_date.post_id= ugm.group_id
AND event_date.Meta_key = '_um_groups_event_start'
LEFT JOIN wp_postMeta event_venue
ON event_venue.post_id= ugm.group_id
AND event_venue.Meta_key = '_um_groups_event_venue'
WHERE STR_TO_DATE(event_date.Meta_value,'%Y/%m/%d') BETWEEN STR_TO_DATE('2021/1/01','%Y-%m-%d') AND STR_TO_DATE('2021/1/15','%Y-%m-%d')
AND wum.Meta_value IS NOT NULL
ORDER BY wu.display_name ASC;
我想要做的是创建一个名为 Total Pay
的最终别名字段,在其中计算每行的 Gig Pay
和 Mileage Pay
的总和。
我遇到的问题是我在查询中使用 SUM
并获取每个匹配行的总和。我只想要每行的总和。
例如,预期的输出如下所示:
Event Date Gig ID Client Venue last_name first_name Miles Mileage Pay Gig Pay Total Pay
2021/01/15 49270 Joe Schmoe This Event Doe Joe 2 120 732 852
解决方法
简单地添加这两个字段应该可以根据要求工作。
SELECT event_date.meta_value AS 'Event Date',ugm.group_id AS 'Gig ID',p_title.post_title AS 'Client',event_venue.meta_value AS 'Venue',wum_l.meta_value last_name,wum_f.meta_value first_name,wum_m.meta_value AS 'Miles',wum_mp.meta_value AS 'Mileage Pay',wum.meta_value AS 'Gig Pay',wum_mp.meta_value + wum.meta_value AS 'Total Pay'
FROM wp_users wu
INNER JOIN wp_um_groups_members ugm
ON ugm.user_id1 = wu.id
LEFT JOIN wp_usermeta wum
ON wu.id = wum.user_id
AND wum.meta_key = CONCAT('um_groups_',ugm.group_id,'_price')
LEFT JOIN wp_usermeta wum_f
ON wu.id = wum_f.user_id
AND wum_f.meta_key = 'first_name'
LEFT JOIN wp_usermeta wum_l
ON wu.id = wum_l.user_id
AND wum_l.meta_key = 'last_name'
LEFT JOIN wp_posts p_title
ON p_title.id = ugm.group_id
LEFT JOIN wp_usermeta wum_m
ON wu.id = wum_m.user_id
AND wum_m.meta_key = CONCAT('_um_groups_','_mileage')
LEFT JOIN wp_usermeta wum_mp
ON wu.id = wum_mp.user_id
AND wum_mp.meta_key = CONCAT('um_groups_','_mileage_price')
LEFT JOIN wp_postmeta event_date
ON event_date.post_id= ugm.group_id
AND event_date.meta_key = '_um_groups_event_start'
LEFT JOIN wp_postmeta event_venue
ON event_venue.post_id= ugm.group_id
AND event_venue.meta_key = '_um_groups_event_venue'
WHERE STR_TO_DATE(event_date.meta_value,'%Y/%m/%d') BETWEEN STR_TO_DATE('2021/1/01','%Y-%m-%d') AND STR_TO_DATE('2021/1/15','%Y-%m-%d')
AND wum.meta_value IS NOT NULL
ORDER BY wu.display_name ASC;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。