在同一个表中使用SQL联合查询并写入相同的列,但如果有相同的日期则不写入

问题描述 投票:0回答:1

我需要将 2 个日期列连接到 1 个日期列中,但如果有相同的年份和月份,只需写其中一个

查询更多这样的

SELECT id ,date, SUM(value) AS value
FROM (
    SELECT id, date1 AS date, value FROM inventory WHERE YEAR(date1) = YEAR(NOW()) AND divisionCode LIKE 'AB000' GROUP BY id
    UNION ALL
    SELECT id, date2 AS date, value FROM inventory WHERE YEAR(date2) = YEAR(NOW()) AND divisionCode LIKE 'AB000' GROUP BY id
) AS subquery
GROUP BY id, date;

显示更多这样的内容


id  |date          |value   
-------------------------
251 |2023-01-06    |50
252 |2023-01-27    |70
252 |2023-03-02    |70
253 |2023-07-06    |20
366 |2023-08-09    |100
366 |2023-08-15    |100
367 |2023-08-07    |120
367 |2023-08-13    |120
sql mysql database phpmyadmin
1个回答
0
投票

谢谢,我已经用 NOT 解决了我的问题

SELECT id, date1 AS date, value 
FROM inventory 
WHERE YEAR(date) = YEAR(NOW()) AND divisionCode LIKE 'AB000' 
GROUP BY id 
UNION ALL 
SELECT id, date2 AS date, value 
FROM inventory 
WHERE YEAR(date2) = YEAR(NOW()) AND NOT MONTH(date1) = MONTH(date2) AND divisionCode LIKE 'AB000' 
GROUP BY id;
© www.soinside.com 2019 - 2024. All rights reserved.