面试题,购物车上的一个问题

hsnhsn 2009-10-28 11:13:42
购物车格式如下:
商品ID|商家ID|价 格|邮 费
1 | 1 | 100 | 5
2 | 1 | 50 | 5
3 | 2 | 10 | 5
4 | 1 | 100 | 5
5 | 2 | 100 | 5

上面这块已经做出来了,现在要根据需要,要求你实现,商家规定当客户在某个商家处购买的商品价格大于200的话,邮费就免除,否则邮费累加。
商家ID|价 格|邮 费
1 | 250 | 15
2 | 150 | 10 示例所示,商家ID=1时的价格250大于了200,商家1的邮费为0;商家2的邮费为10.
最后统计:客户的支付费用为:总价格+邮费=250+150+0+10

请问要实现这样的功能改如何做呢?
...全文
481 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmghoul 2009-10-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ybblack001 的回复:]
SQL codeselect 邮费=casewhensum(购物车内产品价格产品)>=200then'0'whensum(购物车内产品价格产品)<200thensum(购物车内产品价格产品)from 表名where 购物人ID=@id,groupby 商家ID
[/Quote]fhfghfgh
ybblack001 2009-10-28
  • 打赏
  • 举报
回复
不让用sql 不是更好判断么.直接操纵datatable不久好了....
ybblack001 2009-10-28
  • 打赏
  • 举报
回复
select 邮费 = case when sum(购物车内产品价格产品) >= 200 then '0' when  sum(购物车内产品价格产品) < 200 then sum(购物车内产品价格产品) from 表名 where 购物人ID = @id,group by 商家ID  
ivws_19 2009-10-28
  • 打赏
  • 举报
回复
不让用SQL.. -_-
ivws_19 2009-10-28
  • 打赏
  • 举报
回复
select ID,sum(价格) s,(case when s>200 then 0 else sum(邮费) end) from table group by ID
hsnhsn 2009-10-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jiangshun 的回复:]
直接在数据库中用sql语句就足够了


但是有几点不合逻辑啊

第一,同一个买家同时购买大于1个的商品,邮费都应该只能收去一个东西的邮费才对啊

第二,总价格+邮费=250+150+0+10既然加在一起也就是同一个买家的,而金额已经大于200了,怎么还收邮费

设计的太。。。。。
[/Quote]
第二,总价格+邮费=250+150+0+10既然加在一起也就是同一个买家的,而金额已经大于200了,但他买的是两个不同商家的商品,其中有一个不在免邮费条件内。
其次,那公司要求不让你使用sql解决问题
fihuang 2009-10-28
  • 打赏
  • 举报
回复
楼主你是求sql语句呢还是求别的什么?
jiangshun 2009-10-28
  • 打赏
  • 举报
回复
直接在数据库中用sql语句就足够了


但是有几点不合逻辑啊

第一,同一个买家同时购买大于1个的商品,邮费都应该只能收去一个东西的邮费才对啊

第二,总价格+邮费=250+150+0+10既然加在一起也就是同一个买家的,而金额已经大于200了,怎么还收邮费

设计的太。。。。。
juxianxiang 2009-10-28
  • 打赏
  • 举报
回复
group by 应该能搞定的。

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧