首页 新闻 会员 周边

一个统计销量的问题

0
悬赏园豆:10 [已关闭问题] 关闭于 2016-03-01 18:04

http://q.cnblogs.com/q/79985/    

这是我上午问的    我结贴之后  发现并没有解决。。。。。。   楼下几位回答的  都误会了     我的第二张表是有些产品包含多个不同的属性和属性值   要区分是带着这些所有的属性一起判断  而不是group by 来进行的   group by是把每一个属性单独来分的了。。。。跟我的本意不同。。。。  求大神解答能否做到  

清风飘零的主页 清风飘零 | 初学一级 | 园豆:151
提问于:2016-02-25 17:00
< >
分享
所有回答(1)
0

1、你如果不愿意泄露机密,自己修改一个例子,这是可以的。

2、根本不关订单啥事,你一个表把相关的字段列出来,数据给得有点意义,不要瞎写。

3、这样自然就有SQL语句了,至于两个表,三个表的情况,你自己Join就可以了。

4、像你现在这样写,谁知道你想干啥呢?

大家以为是这样的

ArtNo        Color        Size                Quantity

S123        白色           46B      12

S123        浅灰           46B      15

S123        浅灰           44C      11

S124        .....

这时候给你的建议自然是

Select ArtNo, Color, Size, sum(Quantity) from Table group by ArtNo, Color, Size

爱编程的大叔 | 园豆:30839 (高人七级) | 2016-02-25 17:10

好吧  是我表述不清  我只是照着数据库 把对应的几个 弄了上去       属性大概是这样的   

    产品id           属性         属性值  

     1            长度    1M

     1          宽度    2M

类似这样来分组     长度1M宽度2M的是一组   长度2M宽度2M的是一组。。。可以做到么?

支持(0) 反对(0) 清风飘零 | 园豆:151 (初学一级) | 2016-02-25 17:18

@清风飘零: 从哪儿可以看出来

"长度1M宽度2M的是一组   长度2M宽度2M的是一组"?

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2016-02-25 17:31

@爱编程的大叔:   

产品id           属性         属性值   订单id

 1            长度    1M   1

 1          宽度    2M   1

 1            长度    2M   2

 1          宽度    2M   2

 

这样  第一个订单里1产品的长度是1M宽度是2M    第二个订单里相同产品  属性选择是长度2M宽度2M   产品那面在统计要把这2种分成2组来统计销量           

支持(0) 反对(0) 清风飘零 | 园豆:151 (初学一级) | 2016-02-25 17:40

@清风飘零: 

1、这种设计是有问题的,要么就是一个订单产品不可重复。

2、如果一个订单中产品不可重复,那么你按照产品ID+订单ID Group by 就可以了。

需要属性的话,就用产品ID+订单ID取回。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2016-02-26 09:23

@爱编程的大叔: 可是  还有的订单里有相同的产品 但是型号不一样啊     这个数据库是前人设计的= =  我现在已经乱了

支持(0) 反对(0) 清风飘零 | 园豆:151 (初学一级) | 2016-02-26 09:34

@清风飘零: 如果有相同的产品,一定还要有一个字段可以区分。

其实我刚刚已经知道你要说这个了。

你举的数据例子又不体现,别人只有靠经验猜了。

或者说,你告诉我一个规则,通过这个规则,我可以知道同样的订单ID,同样的产品ID,

电脑怎么知道哪两行、三行或者是四行应该是一组的。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2016-02-26 09:41

@爱编程的大叔: 我在昨天那个帖子里的2个表有表示的。。表B的关联表A的ID不就可以区分了订单里的产品   关联表A的ID相同就是同一个产品的不同属性       如果订单里有不同属性相同产品  就是在表A 里相同订单ID存在2个相同的产品ID  但是表ID不同   所以表B的关联表A的ID不同     

支持(0) 反对(0) 清风飘零 | 园豆:151 (初学一级) | 2016-02-26 09:49

@清风飘零: 那你就产品ID+订单ID+那个ID好了,

理论上来说,产品ID+那个ID也够了。

变通,举一反三你会不会。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2016-02-26 10:23

@爱编程的大叔: 你还是没有看明白?  这是举一反三么。。。我要统计的是 不同属性的产品的销量, 带订单ID就应该不对吧?  而且相同产品要根据产品属性不同分组成不同产品  这么查怎么搞最后到属性那里都是有问题的啊   那个ID对应了产品的多条属性   group  就少判断了几条属性

支持(0) 反对(0) 清风飘零 | 园豆:151 (初学一级) | 2016-02-26 10:37

@爱编程的大叔: 这个现在主要问题是  1个订单ID里的1个产品ID   对应了N条属性   而这些属性和属性值 都有可能不同和相同   而要统计所有的订单里的所有的产品销量  跟据产品和属性不同来分组

支持(0) 反对(0) 清风飘零 | 园豆:151 (初学一级) | 2016-02-26 10:39

@清风飘零: 你好好想想吧,你没有经验,做不到像我这样快速的反应。

你碰到的问题有做过服装鞋帽ERP的人都碰到过,只要逻辑说的通,设计不好无非造成查询慢,

不会造成不能查询的。

你好好看下面的这句话....

产品ID+确定订单内产品项的ID,可以唯一确定一组属性的产品,

之后如果需要显示属性,再另外想办法。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2016-02-26 10:41

@清风飘零: 如果你还是不懂,建议网上查询一下 SKU这个词语。

SKU_ID是和产品ID不同的,对应关系类似

SKU_ID=产品ID+属性1+属性2+属性3+属性4+属性5

也就是说SKU_IS是唯一的,但是明显你们的设计没有这东西,所以只好靠订单明细ID+产品ID来唯一确认了。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2016-02-26 10:44

@清风飘零: 如果你还是不懂,我问一句话

产品id           属性         属性值   订单id

 1            长度    1M   1

 1          宽度    2M   1

 1            长度    2M   1

 1          宽度    2M   1

这种情况下,

如何知道产品1+长度1M+宽带2M是一个产品,

然后产品1+长度2M+宽带2M是一个产品?

而不是

产品1+长度1M+宽带2M+长度2M+宽带2M是一个产品?

你们一定有一个字段来识别,

否则电脑只能学习天桥下的瞎子,靠猜的?

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2016-02-26 10:52

@爱编程的大叔: 这个表还有一个order_products_id    这个是不同的   在订单里  每个产品都有一个对应的order_products_id

支持(0) 反对(0) 清风飘零 | 园豆:151 (初学一级) | 2016-02-26 11:01

@爱编程的大叔: 我们这个也是有SKU的   只不过我这里每一个产品对应的就是一个SKU      没有划分属性    我公司这些产品  其实本来就把一些大属性分好了    里面选择的类似是否定制 定制  非定制     然后长度 1M 2M  宽度 1M 2M   或者兼容性 思科 华为   拓展接口。。。。这些  而SKU不区分这些  

支持(0) 反对(0) 清风飘零 | 园豆:151 (初学一级) | 2016-02-26 11:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册