我正在使用C#和MYSQL开发一个Windows应用程序。 但我有一个疑问,我需要从不同的表中显示不同的东西(内部联接我是supose).. 我有一个名为tbl_horas的表,在这个表中我节省了不同的时间,例如:
IdHora | Hora | Meta.
1 | 7:30 | 40
2 | 8:30 | 20
3 | 9:30 | 40
4 | 10:30| 40
我还有另一个名为Products的表,在这个表中我保存了这样的信息:
IdProduct | Hour | Description | ActualDate
1 | 7:30 | Product one | 2017-04-19
2 | 8:30 | Product two | 2017-04-19
3 | 9:30 | Prod three | 2017-04-19
问题是,我怎样才能显示这样的信息?
Hora (From tbl_horas) | Meta (from tbl_horas) | Description (from tbl_products) | Cantidad (from tbl_productos)<- This gonna ve a count for all products that have the hour 7:30, or another..
7:30 | 40 | Product one | 20
8:30 | 20 | Product two | 15
我有这个sql语句,但我不能这样做,这适用于我想要的东西..
SELECT
tbl_horas.Hora,
tbl_horas.Meta,
tbl_horas.Turno,
Count(tbl_productos.Serial)
FROM tbl_horas
INNER JOIN tbl_reportes
on tbl_horas.IdHora = tbl_reportes.IdHora
INNER JOIN tbl_productos
ON tbl_reportes.IdProducto = tbl_productos.IdProducto;
我要在gridview中显示这个,如果有几个小时没有产品,这将在Cantidad显示0 .. 我很抱歉英语哈哈,有人可以帮助我吗?
答案 0 :(得分:0)
要使用Count(),您需要使用“Group By”。
尝试添加:GROUP BY tbl.Hora到语句的末尾。
但请注意,通过对结果进行分组,您将失去某些列的含义。 要解决此问题,您可以尝试为计数列(like this)运行子查询。
答案 1 :(得分:0)
您可以使用count()
获取group by
,然后执行join
select th.hora, th.meta,
xx.description, xx.counthora
from tbl_horas th join (
select hora, description,
count(*) as counthora from products
group by hora) xx on th.hora = xx.hora;