sql - SQL 我想得到以下输出
问题描述
我有一张销售表
Date_s sales_man product qty
1-Jan-18 xx 01 30
1-Jan-18 xx 01 20
1-Jan-18 xy 01 20
1-Feb-18 xz 02 10
5-Feb-18 xz 02 30
1-Feb-18 xx 01 10
1-Feb-18 xx 01 40
1-Mar-18 xy 03 20
我想得到以下输出数据格式
Product sales_man Jan Feb Mar
01 xx 50 10 0
01 xy 20 0 0
02 xx 0 0 0
02 xy 0 0 0
02 xz 0 0 0
03 xy 0 0 20
解决方案
您可以使用聚合。像这样的东西:
select product, salesperson,
sum(case when extract(month from dates) = 1 then qty else 0 end) as jan,
sum(case when extract(month from dates) = 2 then qty else 0 end) as feb
from t
group by product, salesperson;
这使用 ANSI SQL 日期函数,因为您的数据库标记不清楚。日期操作可能因数据库而异。
此外,在按月查看数据时,通常您还希望将年份考虑在内(通过过滤或聚合年份)。
推荐阅读
- .net - 如何在视觉工作室中列出符号?
- c - 当我声明这两个变量时,为什么我的程序会崩溃?
- javascript - 当您有多个标记时,更改单击的标记图标
- javascript - 在 ReactJS 中获取 PHP 文件的回显
- javascript - FAQ 手风琴显示/隐藏
- angular - 通过在 Angular 应用程序的浏览器中手动输入其 URL 导航到特定页面(而不是根页面)并避免错误 404 (IIS)
- java - ActionListener 没有用 JButton 点击替换所需的面板
- java - 无法插入到 SQLite 数据库
- c++ - NS3-如何在模拟运行期间修改点对点通道数据速率
- html - 边距不当