我有一张表,显示所有产品,price_fact字段,计算发票时的平均值,并在插入时更新price_fact字段,price_alb字段相同,但带有交货单。
因此,当发票(price_fact)没有交货单(price_alb),而发票(price_fact)没有交货单时。
+---------------+------------+-------+-------------+-----------+
| name | id_product | price | price_fact| price_alb|
+---------------+------------+-------+-------------+-----------+
| phone | 1 | 300 | NULL | 275|
| mouse | 2 | 100 | 100 | NULL|
| phone | 1 | 250 | NULL | 275|
| mouse | 2 | 100 | NULL | 100|
| phone | 1 | 300 | 300 | NULL|
+---------------+------------+------+--------------+-----------+
我想要的是在一行中计算所有产品,总共计算产品数量,最终结果显示那些具有非空记录的产品的price_fact和price_alb列。 / p>
+---------------+------------+-------+-------------+-----------+------+
| name | id_product | price | price_fact| price_alb| units|
+---------------+------------+-------+-------------+-----------+------+
| phone | 1 | 300 | 300 | 275| 3|
| mouse | 2 | 100 | 100 | 100| 2|
+---------------+------------+------+--------------+-----------+------+
已解决(我已将MAX(price_fact),MAX(price_alb)放入选择范围)。
答案 0 :(得分:0)
您可以尝试使用聚合函数。
SELECT name,
id_product,
MAX(price) price,
MAX(price_fact) price_fact,
MAX(price_alb) price_alb,
COUNT(*) units
FROM T
GROUP BY name,id_product