我有一个查询,当我在其中一个中使用NULL时,它会重复该行。
基本上当有一个人在长矛上进入时,它会显示所有关于某个老鼠的长矛的最大值。 (leilao = auction,lance = bid)
SELECT lr.lid,l.nome,datediff(date_add(l.dia,INTERVAL lr.nrdias DAY),current_date()) as "Nr dias até o fim",null
from leilao l JOIN leilaor lr ON (l.dia= lr.dia AND l.nrleilaonodia = lr.nrleilaonodia AND l.nif= lr.nif)
where date_add(l.dia,INTERVAL lr.nrdias DAY) >= current_date()
group by lid
UNION
SELECT lr.lid,l.nome,datediff(date_add(l.dia,INTERVAL lr.nrdias DAY),current_date()) as "Nr dias até o fim",MAX(la.valor)
from concorrente c JOIN lance la JOIN leilaor lr JOIN leilao l
ON (c.leilao = lr.lid AND la.pessoa = c.pessoa AND la.leilao = c.leilao AND l.nif=lr.nif AND l.dia= lr.dia AND l.nrleilaonodia = lr.nrleilaonodia)
where date_add(l.dia,INTERVAL lr.nrdias DAY) >= current_date()
group by lid
通过sugestion改为this但它给了我一个错误“每个派生表必须有自己的别名。 选择 * 从(
SELECT lr.lid,l.nome,datediff(date_add(l.dia,INTERVAL lr.nrdias DAY),current_date()) as "Nr dias até o fim",null as "Maxímo lance"
from leilao l NATURAL JOIN leilaor lr
where date_add(l.dia,INTERVAL lr.nrdias DAY) >= current_date()
group by lr.lid
UNION
(SELECT lr2.lid,l2.nome,datediff(date_add(l2.dia,INTERVAL lr2.nrdias DAY),current_date()) as "Nr dias até o fim",MAX(la.valor)
from concorrente c JOIN lance la JOIN leilaor lr2 JOIN leilao l2
ON (c.leilao = lr2.lid AND la.pessoa = c.pessoa AND la.leilao = c.leilao AND l2.nif=lr2.nif AND l2.dia= lr2.dia AND l2.nrleilaonodia = lr2.nrleilaonodia)
where date_add(l2.dia,INTERVAL lr2.nrdias DAY) >= current_date()
group by lr2.lid)
)
group by Max(la.valor)