很难为此制定一个更具描述性的标题。我现在已经花了几个小时,并且认为最好只是问别人!
我有 3 张桌子,看起来像这样
地点:
id | name
1 | Plymouth
2 | Torquay
etc
销售记录
itemId | saleDate (unix) | qty | saleLocation |
123 | UNIXTIMESTAMP | 1 | 1 |
458 | UNIXTIMESTAMP | 4 | 2 |
215 | UNIXTIMESTAMP | 2 | 2 |
541 | UNIXTIMESTAMP | 1 | 1 |
产品
itemId | brand |
123 | 1 | etc
显然,每个表实际上都包含比这更多的数据,但这就是所需的全部。
我需要的是一个输出,它可以告诉我每个项目或特定位置已售出的项目组的数量。我需要看起来像这样的东西:
输出
mnth | yr | location1Sales | location2Sales
10 | 2006 | 14 | 7
11 | 2006 | 13 | 12
12 | 2006 | 8 | 1 ... etc
我昨天在这里发布的问题:
得到了友好的回答,并给了我一个相当有效的查询来检索TOTAL
所有位置的组合销售额(根本没有与昨天问题中发布的查询相关的位置数据),而且效果很好。
我当然可以添加一个附加子句WHERE
并仅获取单个位置的数据,但我希望所有这些都在一个表中。
今天我试图添加一些分组/where子句以将位置添加到查询中,但无法理解如何创建上述格式的表。
我已经获得了行中的位置数据输出,但我需要按照上面的列形式
SELECT DAY( FROM_UNIXTIME( saleDate ) ) AS
DAY , MONTH( FROM_UNIXTIME( saleDate ) ) AS mnth,
YEAR( FROM_UNIXTIME( saleDate ) ) AS yr,
COUNT( s.id ) AS invCount, locations.name,
s.location, SUM( quantity ) AS saleQty
FROM salesRecords s
LEFT JOIN locations ON locations.id = s.location
INNER JOIN products ON s.itemNo = products.id
WHERE products.brand = '313' <=== X
AND s.location LIKE '1\_%' <=== XX
GROUP BY `locations`.`name` , mnth, yr
X:品牌 ID 是按品牌对产品进行分组所需的变量
XX:位置是这样查询的,因为 saleLocation 以 dB 形式保存"locationId_tilId"
,因为销售由 til 跟踪,尽管出于此数据的目的,我只需要位置 ID,我不关心 tilId
我正在尝试获取这些数据并将其转换为 Javascript 数组,以便我可以使用出色的 amCharts 插件来绘制它。