2015-11-27 20 views
0

我在postgres中有一个查询问题,表cgporders_items有一个名为return的字段,我不能用这个查询得到该字段的实际结果,它返回我al ceros 。在postgreSQL中选择一个名为“return”的字段

SELECT "Cgporder".id AS "Cgporder__id" 
    ,"Sale".preorder_number AS "Sale__preorder_number" 
    ,"Contact".id AS "Contact__id" 
    ,"Contact".NAME AS "Contact__name" 
    ,"Ptype".NAME AS "Ptype__name" 
    ,(
     SELECT code 
     FROM products 
     WHERE id = "CgporderItem".parent_id 
     ) AS "Product__parent_code" 
    ,"Product".id AS "Product__id" 
    ,"Product".code AS "Product__code" 
    ,"Product".NAME AS "Product__name" 
    ,"CgporderItem".quantity AS "CgporderItem__quantity" 
    ,"CgporderItem".return AS "CgporderItem__return" 
    ,"CgporderItem".cep_id AS "CgporderItem__cep" 
FROM cgporders AS "Cgporder" 
INNER JOIN contacts AS "Contact" ON ("Contact".id = "Cgporder".contact_id) 
INNER JOIN cgporders_items AS "CgporderItem" ON ("Cgporder".id = "CgporderItem".cgporder_id) 
INNER JOIN products AS "Product" ON ("Product".id = "CgporderItem".product_id) 
INNER JOIN ptypes AS "Ptype" ON ("Ptype".id = "Product".ptype_id) 
LEFT JOIN cgporders_sales AS "CgporderSale" ON ("Cgporder".id = "CgporderSale".cgporder_id) 
LEFT JOIN sales AS "Sale" ON ("Sale".id = "CgporderSale".sale_id) 
WHERE "CgporderItem".parent_id != 0 
    AND "Cgporder"."issue_date" >= '2015-11-27' 
    AND "Cgporder"."issue_date" <= '2015-11-27' 
    AND "Cgporder"."status" = 'confirmed' 
ORDER BY "Ptype".NAME 
    ,"Product"."code"; 

实际上有大量的行符合选择条件,但它的“CgporderItem”回归CERO .return AS“CgporderItem__return”

如果我做出这样选择“回归”一个简单的查询从cgporders_items它的工作原理。但在这个查询中它不起作用。

你能帮助我吗?

+0

您是否试过''CgporderItem“。”return“AS”CgporderItem__return“'?返回是一个保留字,它必须被引用。 – fvu

+0

是的,我已经尝试过,但它也不起作用 – juanpscotto

回答

1

这太长了评论。

“return”是SQL中的保留字,但不是Postgres中的保留字。请参阅列表here。下面的代码工作发现的Postgres(SQL小提琴是here):

create table dum (return int); 

select dum.return from dum; 

您的问题是别的东西。如果我不得不猜测,where子句太严格了(日期条件有点怀疑)。

相关问题