我有两张桌子:
prueba
cod varchar(25) PK
nom varchar(100)
tip varchar(50)
des varchar(500)
pre double
can double
cla varchar(3)
fcm varchar(20)
和
inventario
loc varchar(20)
cod varchar(25) FK
can double
cve varchar(3)
表格与鳕鱼有关。 我有这个MySQL查询:
select inventario.cod as 'Código', inventario.can as 'Cantidad', inventario.cve as 'Clave', prueba.nom as 'Descripción', prueba.tip as 'Modelo', prueba.pre as 'Precio'
from inventario, prueba
where inventario.loc = 'XTORR'
group by inventario.cod
order by inventario.cod ;
它会返回以下结果:
Código can cve Descripción Modelo Precio
20121 2 S FUNDA MORRAL PERSONAJES 2 199
20122 1 S FUNDA MORRAL PERSONAJES 2 199
20124 2 S FUNDA MORRAL PERSONAJES 2 199
2014 4 S FUNDA MORRAL PERSONAJES 2 199
2015 1 F FUNDA MORRAL PERSONAJES 2 199
问题在于,2014年和2015年并没有通过
总结他们的价值观XTORR 2014 4 S
XTORR 2014 2 S
XTORR 2015 1 F
XTORR 2015 1 F
2014年应该有6个可以,2015年应该有2个。但是,如果我使用sum()来发明,那么can值就可以了。
select inventario.cod as 'Código', sum(inventario.can) as 'Cantidad', inventario.cve as 'Clave', prueba.nom as 'Descripción', prueba.tip as 'Modelo', prueba.pre as 'Precio'
from inventario, prueba
where inventario.loc = 'XTORR'
group by inventario.cod
order by inventario.cod ;
20121 3456 S FUNDA MORRAL PERSONAJES 2 199
20122 1728 S FUNDA MORRAL PERSONAJES 2 199
20124 3456 S FUNDA MORRAL PERSONAJES 2 199
2014 10368 S FUNDA MORRAL PERSONAJES 2 199
2015 3456 F FUNDA MORRAL PERSONAJES 2 199
我该如何解决这个问题?感谢。
答案 0 :(得分:0)
Inner Join解决了这个问题。
select inventario.cod as 'Código', sum(inventario.can) as 'Cantidad', inventario.cve as 'Clave', prueba.nom as 'Descripción', prueba.tip as 'Modelo', prueba.pre as 'Precio'
from inventario
INNER JOIN prueba on inventario.cod = prueba.cod
where inventario.loc = 'XTORR'
group by inventario.cod
order by inventario.cod;
感谢你揭晓,PM 77-1。