|
本帖最后由 danglihui0529 于 2012-1-18 11:34 编辑
本来可以联表查询的,可是表数据太大,很慢,想写存储过程使查询过程简便些。过程是这样的:从classbrand中查询Keywor中包含‘人头马’的CKID(318910),根据查到的CKID对应brandname中newbrand是(318910),将结果中barcode插入到一个临时表A(只有一个barcode主键),最后对A,_tmb_Dec联表,查询人头马条码记录中北(2)上(1)广(15)深(8)及全国的UPID数:[code=sql]SELECT Date(Datetime),CTID,count(UPID) FROM _tmb_Dec,A WHERE Barcode=IndirectObject and CTID IN (1,2,8,15) GROUP BY Date(Datetime),CTID; -- 人头马12月份北上广深的记录数
SELECT Date(Datetime),count(UPID) FROM _tmb_Dec,A WHERE Barcode=IndirectObject GROUP BY Date(Datetime); -- 人头马12月份全国的记录数
[/code]
我想做一个这个的存储过程:
输入参数’洋河‘,根据’洋河‘查出CKID,再根据CKID(等同brandname中的newbrand)查询所有属于这个类的商品条码,前清空A表,并将distinct barcode插入到表A中,最后联表查询洋河这类商品12月份北上广深记录数及全国记录数。
或者将洋河,茅台,轩尼诗等品牌一并输入进去一起对品牌分组一次查询出来(这个难度好像大了些)
不知道说的是否清楚,如果哪里不清楚,尽管提出来,我再做说明,拜托了,先谢谢大家了~~~
- [code=sql]-- 洋河北上广深12月
- SELECT Date(Datetime),CTID,count(UPID) FROM _tmb_Dec
- WHERE IndirectObject IN (SELECT Barcode FROM brandname WHERE newbrand in (SELECT CKID FROM classbrand WHERE Keyword LIKE '%洋河%')) AND CTID IN (1,2,8,15)
- GROUP BY Date(Datetime),CTID;
复制代码- -- 洋河全国12月纪录数
- SELECT Date(Datetime),count(UPID) FROM _tmb_Dec
- WHERE IndirectObject IN (SELECT Barcode FROM brandname WHERE newbrand in (SELECT CKID FROM classbrand WHERE Keyword LIKE '%洋河%'))
- GROUP BY Date(Datetime)
复制代码
该贴已经同步到 danglihui0529的微博
|
|