各位同学深夜好,我有两个表:
【goods_attr】 用于存储产品所需缴纳税收比例
【order_goods】 用于存储订单相关信息。
现需要查询语句为:
order_goods表中order_id=2,且税收金额等于7%的有几个商品,和商品所需要缴纳的税收总额是多少?
请教各位同学。谢谢了
SQL语句如下:
--
-- 数据库: `test`
---- ----------------------------------------------------------
-- 表的结构 `goods_attr`
--CREATE TABLE IF NOT EXISTS `goods_attr` (
  `goods_attr_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自动编号',
  `goods_id` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '商品编号',
  `attr_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT '属性ID',
  `attr_value` text NOT NULL COMMENT '税率值',
  PRIMARY KEY (`goods_attr_id`),
  KEY `goods_id` (`goods_id`),
  KEY `attr_id` (`attr_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;--
-- 转存表中的数据 `goods_attr`
--INSERT INTO `goods_attr` (`goods_attr_id`, `goods_id`, `attr_id`, `attr_value`) VALUES
(1, 971, 1, '3%'),
(2, 972, 2, '19%'),
(3, 974, 3, '7%'),
(4, 975, 3, '7%');-- ----------------------------------------------------------
-- 表的结构 `order_goods`
--CREATE TABLE IF NOT EXISTS `order_goods` (
  `rec_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增编号',
  `order_id` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '订单编号',
  `goods_id` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '商品编号',
  `goods_name` varchar(120) NOT NULL DEFAULT '' COMMENT '商品名称',
  `goods_number` smallint(5) unsigned NOT NULL DEFAULT '1' COMMENT '商品数量',
  `et_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '市场价',
  `goods_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '会员价',
  PRIMARY KEY (`rec_id`),
  KEY `order_id` (`order_id`),
  KEY `goods_id` (`goods_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;--
-- 转存表中的数据 `order_goods`
--INSERT INTO `order_goods` (`rec_id`, `order_id`, `goods_id`, `goods_name`, `goods_number`, `et_price`, `goods_price`) VALUES
(1, 1, 971, '苏醒的乐园韩版短款加厚 羽绒服女 YRF114', 1, '599.00', '259.00'),
(2, 2, 972, '短款加厚韩版羽绒服', 1, '1398.00', '259.00'),
(3, 2, 974, '长款修身拼接纯色连帽羽绒服', 1, '899.00', '299.00'),
(4, 2, 975, 'OL气质毛呢厚外套呢大衣', 1, '259.00', '149.00');

解决方案 »

  1.   

    select *,et_price*attr_value 
    from order_goods o,goods_attr a
    where o.order_id=2 
    and o.goods_id=a.goods_id
    and a.attr_value='7%'
      

  2.   

    非常感谢ACMAIN_CHM版主解惑。刚我测试了一下。得到的结果和我描述的不一样。是我的错。没有描述好。
    现只需要得到如下结果:
    统计:order_goods表中order_id=2,且税收金额等于7%的商品;得到该订单所需要缴纳的税收总额是多少?谢谢。
    商品会员价*税收金额7% 即等于该单商品的税收金额。