2 qq 34806078 qq_34806078 于 2016.05.06 12:31 提问

取别名问题··········

SELECT
t1.*,
IF (min_time IS NULL, '否', '是') 是否维修厂首单
FROM
(
SELECT
a.sn 订单号,
FROM_UNIXTIME(a.create_time) 下单日期,
h.user_name 维修厂名称,
c.store_name 店铺名称,
a.order_amount 订单金额,
IFNULL(
(
SELECT
SUM(ebt.type_money)
FROM
es_member_bonus emb,
es_bonus_type ebt
WHERE
emb.bonus_type_id = ebt.type_id
AND a.bonus_id LIKE CONCAT('%', emb.bonus_id, '%')
AND emb.member_id = a.member_id
AND emb.used = 1
),
0
) 优惠券金额,
(
SELECT
sales_name
FROM
es_sales i
WHERE
h.sales_id = i.sales_id
) 销售员,
CASE a.status
WHEN 0 THEN
'已确认'
WHEN 1 THEN
'已付款待确认'
WHEN 2 THEN
'已付款'
WHEN 4 THEN
'未发货'
WHEN 5 THEN
'已发货'
WHEN 6 THEN
'已收货'
WHEN 7 THEN
'已完成'
WHEN 9 THEN
'订单已生效'
END 状态 as state
FROM
es_order a,
es_store c,
es_goods d,
es_brand e,
es_order_items f,
es_ent_member h
WHERE
a.member_id = h.member_id
AND a.store_id = c.store_id
AND a.order_id = f.order_id
AND f.goods_id = d.goods_id
AND d.brand_id = e.brand_id
AND a.status IN (0, 1, 2, 4, 5, 6, 7, 9)
GROUP BY
a.sn
ORDER BY
a.create_time
) t1
LEFT JOIN (
SELECT
FROM_UNIXTIME(min(create_time)) min_time
FROM
es_order
GROUP BY
member_id
) t2 ON t1.下单日期 = t2.min_time
想给是否维修厂首单,优惠券金额等都取一个别名,改如何做,新手求救,哭了。

4个回答

tianlang_2008
tianlang_2008   2016.05.06 15:29

sql里面怎么还有if?因该是用case when来判定吧。如:(case when min_time IS NULL then '否' else '是' end) 是否维修厂首单

mazegong
mazegong   2016.05.06 15:34

sql里面怎么还有if?因该是用case when来判定吧。如:(case when min_time IS NULL then '否' else '是' end) 是否维修厂首单

huangwenkangz
huangwenkangz   2016.05.06 17:33

case when 可以使用decode代替,还有一个nvl函数也比较好用,两者结合起来代码就简单明了

CSDNXIAOS
CSDNXIAOS   2016.05.06 18:42

师老灞上·桓温 作者:★浮星槎★  
(一)木犹如此
晋太和四年(公元369年),大司马桓温统帅五万军队,第三次北伐。大军从姑 孰(今安徽当涂)出发,途经金城(今江苏江乘县附近)。这一年,距他出任琅 琊内史(晋朝北方领土丧失后,在南方设立侨州、侨郡、侨县,以示恢复之志。 琅琊就是侨郡之一,治所金城)的时候已经整整三十七年,距他离开金城,升任 徐州刺史的时候也已经二十多年了。岁月无情......
答案就在这里:师老灞上·桓温 (一)
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java中别名现象和对象引用问题
我们都知道在原始数据类型中,int a = b 表示将b的值赋给a,之后a和b是两个独立的部分。但在操作引用数据类型时比如如 Object a = b 其实是将b在内存中的引用与a共享,可是我们有时还会把对引用数据类型的操作当成第一种情况(原始数据类型的操作),因此我们可能常常会犯这样的错误:对a进行一系列操作后,我们依然以为b还是原来那个b,事实上,对a和b操作都是在对同一个引用进行操作。可以用
sql中给表起别名问题
select        PT_HC_H16.HEALTH_RECORD_CODE as HEALTH_RECORD_CODE         ,PT_HC_H16.NAME_GB as NAME_GB         ,PT_HC_H16.REFERRAL_GB as REFERRAL_GB         ,PT_HC_H16.INPUT_MAN_GB as INPUT_MAN_GB
oracle nvl 的别名问题
<br />按如下的用法,给字段段给一个值: nvl(aaa,0)<br />结果在 hibernate 保存时,报如下的错:<br />18:35:13,671  INFO IntegerType:182 - could not read column value from result set: SIMULPORTCAPACITYOCUPIED; 列名无效<br />18:35:13,671  WARN JDBCExceptionReporter:77 - SQL Error: 17006, SQLSt
JAVA类,别名问题
/*   *    * @author caryt   *   */ class test1{ String thh="caryt1"; } /**  *   * @author caryt  *  */ public class test {    static void test2(test1 t3){   t3.thh="caryt3";    } /*
怎样解决无法获取MYSQL字段别名问题
润乾V4 润乾报表 无法获取MYSQL字段别名
select * from (select * from tablename) 不可以 问题解决
sql基本语法 select column from table 所以 应写成 select * from (select * from tablename) as newtablename
hibernate sqlQuery mysql别名问题
项目环境:hibernate3.6.1   mysql5.7.3  驱动:mysql-connector-java-5.1.26   问题描述:项目是从一个sqlserver 数据库翻转到mysql数据库上的。框架都不变, 代码部分: 平台输出: Hibernate: select l.id, userId,
MySQL别名的使用
在查询时,可以为表和字段取一个别名。这个别名可以代替其指定的表和字段。 为表取别名 代码如下: mysql> SELECT * FROM department d     -> WHERE d.d_id=1001; +------+-----------+--------------+-------------+ | d_id | d_name    | functio
sql中为表名起别名的重要性
 无论是使用原生的sql还是框架中的sql语句有些情况下是要必须为表名起一个别名的,什么情况下呢?就是在字段名与数据库中的关键字冲突的时候。 在使用Hibernate的时候有时候会遇到这样的问题:各种配置都正确,就是不能自动的生成数据库的表。这时假如实体名为Test,使用了@Table注解,表名为“test”,Test类中有key这么一个属性@Column(name="KEY"),那么这个
在WHERE子句中引用取别名的列
SQL Cookbook:一、检索记录(6)在WHERE子句中引用取别名的列<br />问题<br />    前面已经使用了别名为查询提供更有意义的列名,而且也使用WHERE子句将一些数据排除掉,然而,我们还想在WHERE子句中引用别名。select sal as salary, comm as commission from emp where salary < 5000<br />解决方案<br />    将查询作为内联视图就可以就可以引用其中别名的列了:select * from (