SELECT DISTINCT,ORDER BY表达式必须出现在目标列表中

时间:2018-08-13 15:27:54

标签: sql

我已经完成了此SQL请求:

SELECT DISTINCT
*, j_start_date, typeNP.j_value, g_challenge.j_title
FROM g_challenge 
INNER JOIN g_challenge_catset typeNP ON g_challenge.j_row_id = typeNP.j_item_id AND typeNP.j_value IN  ('jbm_5233','jbm_5232','bfr_8227')
INNER JOIN g_challenge_catset as tps ON g_challenge.j_row_id = tps.j_item_id AND tps.j_value IN  ('aga_7777','aga_7778','aga_7776')
LEFT OUTER JOIN g_dbsocialgroup gdb ON g_challenge.j_dbsocialgroup_id = gdb.j_row_id || '_DBSocialGroup'
WHERE (j_start_date >= '2018-08-13' OR (j_start_date <= '2018-08-13' AND j_end_date >= '2018-08-13')) AND  g_challenge.j_pstatus = 0 AND g_challenge.j_mutualiste_type = false 
ORDER BY 
CASE typeNP.j_value
    WHEN 'bfr_8227' THEN '1' 
    WHEN 'jbm_5233' THEN '2' 
    WHEN 'jbm_5232' THEN '3'
    END,
j_start_date ASC, g_challenge.j_title ASC

但是我遇到了这个错误:SELECT DISTINCT,ORDER BY表达式必须出现在目标列表中,我不知道为什么?

请帮助我

1 个答案:

答案 0 :(得分:0)

好吧,我用

分组解决了这个问题
GROUP BY g_challenge.j_start_date, typeNP.j_value, g_challenge.j_title, g_challenge.j_row_id, typeNP.j_item_id, tps.j_item_id, tps.j_value, gdb.j_row_id

,并在选择中删除DISTINCT和命名列