2012-07-25 78 views
0

好的,我们开始吧。显示每个分支的每日销售额mysql

我有2个表格。

表1 =分支 含有

branch_id branch_name

表2 = SALES_DATA 含有

sales_id sales_date sales_branch sales_profit

我需要显示每个分支的每日总销售额和每日总利润。我知道如何将结果带回给定的一周等,我只是在如何撤回数据方面非常挣扎。

我还需要在所有的时间来显示所有的树枝,如果他们没有卖过任何东西显示为0。

我已经把一个快速的图像(http://i37.photobucket.com /albums/e71/dannyflap/screen_shot.jpg)我如何完成。这真是我发疯:(

UPDATE

select sales_branch, WEEKDAY(sales_date), COUNT(sales_profit), SUM(sales_profit) 
FROM sales_date 
GROUP BY sales_branch, WEEKDAY(sales_date) 

这则带回了下面的例子。图是由。

sales_branch, day, units, profit: 

| branch1 | 0 (as day) | 16 | 439 | 

| branch1 | 1 (as day) | 12 | 651 | 

| branch1 | 2 (as day) | 22 | 312 | 

| branch1 | 3 (as day) | 61 | 614 | 

| branch1 | 4 (as day) | 12 | 541 | 

| branch1 | 5 (as day) | 24 | 102 | 

| branch1 | 6 (as day) | 21 | 145 | 
+0

到目前为止你有什么?你有什么尝试?哪里出问题了? – databyss 2012-07-25 20:27:51

+0

我已添加我目前为止的内容 – 2012-07-25 20:39:54

回答

0

你将需要一个外键sales_data映射到分支

假设sales_branch与branch_name或branch_id不同,sales_data应该包含:

sales_id sales_date sales_branch branch_id sales_profit 

另外 - 你应该发布你的代码来获得给定周的结果,我们可以帮助你建立,而不是给你整个答案。

编辑 确定与修改您SALES_DATA表有一个外键branch_id分支表,此查询应该让你更接近你在找什么。

SELECT b.branch_name, WEEKDAY(s.sales_date), COUNT(s.sales_profit), SUM(s.sales_profit) 
FROM branch b 
LEFT OUTER JOIN sales_data on s.branch_id = b.branch_id 
GROUP BY b.branch_id, WEEKDAY(s.sales_date) 
+0

当报告销售额时,branch_name用于填充下拉框,该销售额作为sales_branch添加到sales_data(如果有意义)。 – 2012-07-25 20:28:52

+0

选择sales_branch,WEEKDAY(sales_date),COUNT(sales_profit),SUM(sales_profit) FROM sales_date GROUP BY sales_branch,WEEKDAY(sales_date) 这于是带回下面的例子。数字组成。 sales_branch,日,单位,利润: | branch1 | 0(当天)| 16 | 439 | | branch1 | 1(当天)| 12 | 651 | | branch1 | 2(当天)| 22 | 312 | | branch1 | 3(当天)| 61 | 614 | | branch1 | 4(当天)| 12 | 541 | | branch1 | 5(当天)| 24 | 102 | | branch1 | 6(当天)| 21 | 145 | – 2012-07-25 20:30:34

+0

您不应该存储分支名称两次。您应该将branch_id作为分支表中的branch_id的外键存储在sales_data表中。 – Catfish 2012-07-25 20:31:37

0

我猜你会做外连接的表1的branch_id和表2的sales_branch和遍历结果产生的表。我认为,对于外部联合,那些没有出售任何东西的分支将获得NULL

难道是表格产生问题吗?我不认为为这个问题做一些壮观的SQL是明智的。我的两分钱。

+0

是的,这也是我无法挽回他们的结果 – 2012-07-25 20:37:46

相关问题