首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用大量表进行选择

使用大量表进行选择
EN

Stack Overflow用户
提问于 2017-07-08 18:14:40
回答 1查看 151关注 0票数 0

我试图对销售报告进行查询,其中将显示销售代码、日期、产品数量(仅限于)、门票数量、总销售额以及员工姓名。我所使用的单击此处查看表之间的连接。查询,它不返回错误,而是只返回一行,即使Sales表中没有任何内容,也可以返回满行。

代码语言:javascript
复制
select sales.codv
, customers.name as customers
, concat(day(datav),'/',month(datav),'/',year(datav)) as date
, sum(prod_sal.amount) as 'products'
, count(tickets.codb) as 'tickets'
, sum(ifnull(products.preco,0) * ifnull(prod_sal.amount,0) + 
ifnull(tickets.price,0)) as 'total/€'
, employees.nome as employee
from sales
LEFT JOIN customers ON customers.codc=sales.codc
INNER JOIN employees ON employees.codf=sales.codf
LEFT JOIN prod_sal ON prod_sal.codv=sales.codv
LEFT JOIN products ON products.codp=prod_sal.codp
LEFT JOIN tickets ON tickets.codv=sales.codv

注意事项:datav是销售日期

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-08 19:57:29

如果不使用group by子句,MySQL将假设要聚合与where子句匹配的所有行。由于您没有where子句,这就是数据库中的所有内容。

代码语言:javascript
复制
select 
  sales.codv
  , customers.name as customers
  , concat(day(datav),'/',month(datav),'/',year(datav)) as date
  , sum(prod_sal.amount) as 'products'
  , count(tickets.codb) as 'tickets'
  , sum(ifnull(products.preco,0) * ifnull(prod_sal.amount,0) + ifnull(tickets.price,0)) as 'total/€'
  , employees.nome as employee
from 
  sales
  LEFT JOIN customers 
    ON customers.codc=sales.codc
  INNER JOIN employees 
    ON employees.codf=sales.codf
  LEFT JOIN prod_sal 
    ON prod_sal.codv=sales.codv
  LEFT JOIN products 
    ON products.codp=prod_sal.codp
  LEFT JOIN tickets 
    ON tickets.codv=sales.codv
group by
  sales.codv
  , customers.name
  ,  concat(day(datav),'/',month(datav),'/',year(datav)) as date
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44989363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档