- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我不明白为什么会报这个错。字段值“Product”是数字吗?..我有 UNION ALL 查询,它使第一行显示其他行的总和。我的查询很长,所以我不会发布(但如果有必要,我会发布)。
所以首先我会给出我的代码片段:
with w as (
SELECT
...
CASE x.variants WHEN x.variants THEN x.product || ' - ' || x.variants else x.product END as product
...
)
SELECT
...
'Product' as product,
...
UNION ALL
SELECT * FROM w
所以我使用产品列在第一行显示为“产品”(因为我不需要在第一行的这个字段中计算。但计算其他字段的总数)
当我运行查询时,它会输出此错误:
DataError: invalid input syntax for type numeric: "Product"
LINE 104: 'Product' as product,
编辑:PostgreSQL 版本 8.4
完整查询:
(
with w as (SELECT
min(fld2.id) AS id, -- note. Posted code is working now, but this select part was not
fld2.partner as partner, -- the same that is at the bottom (where different first line
fld2.product as product, -- is queried. So that gave error.
fld2.qty1 as qty1,
fld2.qty2 as qty2,
fld2.q1 as q1,
fld2.q2 as q2,
CASE WHEN (q1 >= q2 and q2 != 0) THEN ((q1-q2)/q2) * 100 WHEN (q1=0 or q2=0) THEN NULL WHEN (q2 > q1 and q1!=0) THEN ((q1/q2)-1)*100 END as percent_q,
fld2.price_q as price_q,
fld2.y1 as y1,
fld2.y2 as y2,
CASE WHEN (y1 >= y2 and y2 != 0) THEN ((y1-y2)/y2) * 100 WHEN (y1=0 or y2=0) THEN NULL WHEN (y2 > y1 and y1!=0) THEN ((y1/y2)-1)*100 END as percent_y,
fld2. price_y as price_y
FROM
(
SELECT
min(x.id) AS id,
x.partner as partner,
--quarter as quarter,
CASE x.variants WHEN x.variants THEN x.product || ' - ' || x.variants else x.product END as product,
sum(case when (calcyear=DATE_PART('year', now()) and x.quarter=3) then x.qty else 0 end) as qty1,
sum(case when (calcyear=DATE_PART('year', now() - '1 year'::interval) and x.quarter=3) then x.qty else 0 end) as qty2,
sum(case when (calcyear=DATE_PART('year', now()) and x.quarter=3) then price_unit else 0 end) as q1,
sum(case when (calcyear=DATE_PART('year', now() - '1 year'::interval) and x.quarter=3) then price_unit else 0 end) as q2,
sum(case calcyear when DATE_PART('year', now()) then price_unit else 0 end) as y1,
sum(case calcyear when DATE_PART('year', now() - '1 year'::interval) then price_unit else 0 end) as y2,
sum(case when (calcyear=DATE_PART('year', now()) and x.quarter=3) then price_unit WHEN (calcyear=DATE_PART('year', now() - '1 year'::interval) and x.quarter=3) THEN -1*price_unit end) AS price_q,
sum(case when calcyear=DATE_PART('year', now()) then price_unit ELSE -1*price_unit end) AS price_y
FROM (
SELECT
min(so.id) as id,
DATE_PART('year', so.date_order) AS calcyear,
DATE_PART('quarter', so.date_order) AS quarter,
sol.price_unit as price_unit,
rp.name as partner,
pt.name as product,
pp.variants as variants,
sol.product_uom_qty as qty
FROM
sale_order AS so
INNER JOIN sale_order_line AS sol ON (sol.order_id = so.id)
INNER JOIN res_partner as rp ON (so.partner_id = rp.id)
INNER JOIN product_product as pp ON (sol.product_id=pp.id)
INNER JOIN product_template as pt ON (pp.product_tmpl_id=pt.id)
WHERE EXISTS(
SELECT * FROM res_partner_category_rel rpcl
WHERE
rpcl.partner_id=rp.id and rpcl.category_id=37
and (so.date_order >= date_trunc('year', now() - '1 year'::interval)::timestamp::date and so.date_order <= date_trunc('year', now()+ '1 year'::interval)::timestamp::date-1 )
and rp.distributor=True and rp.active=True
and so.state != 'cancel'
)
GROUP BY
variants,
calcyear,
quarter,
price_unit,
partner,
product,
qty
) AS x
GROUP BY
partner,
x.variants,
x.product
ORDER BY
partner
)fld2
GROUP BY
partner,
q1,
q2,
y1,
y2,
qty1,
qty2,
product,
price_q,
price_y,
percent_q,
percent_y
ORDER BY
partner
)
SELECT
1111 as id,
'Viso' as partner,
'Product' as product,
sum(uf.qty1) as qty1,
sum(uf.qty2) as qty2,
sum(uf.q1) as q1,
sum(uf.q2) as q2,
sum(CASE WHEN (uf.q1 >= uf.q2 and uf.q2 != 0) THEN ((uf.q1-uf.q2)/uf.q2) * 100 WHEN (uf.q1=0 or uf.q2=0) THEN NULL WHEN (uf.q2 > uf.q1 and uf.q1!=0) THEN ((uf.q1/uf.q2)-1)*100 END) as percent_q,
sum(uf.price_q) as price_q,
sum(uf.y1) as y1,
sum(uf.y2) as y2,
sum(CASE WHEN (uf.y1 >= uf.y2 and uf.y2 != 0) THEN ((uf.y1-uf.y2)/uf.y2) * 100 WHEN (uf.y1=0 or uf.y2=0) THEN NULL WHEN (uf.y2 > uf.y1 and uf.y1!=0) THEN ((uf.y1/uf.y2)-1)*100 END) as percent_y,
sum(uf.price_y) as price_y
FROM
(
SELECT
sum(price_q) as price_q,
sum(price_y) as price_y,
sum(qty1) as qty1,
sum(qty2) as qty2,
sum(q1) as q1,
sum(q2) as q2,
sum(y1) as y1,
sum(y2) as y2
FROM w
)uf
UNION ALL
SELECT * FROM w
) fld
最佳答案
好的,我发现出了什么问题。愚蠢的我:)。它给出了这个错误,因为查询的主要部分,选择列的顺序是错误的(即使在我的系统中它是通过使用图形界面排序的,但在这种情况下,当使用 UNION ALL 时,列也需要正确排序)。所以我将顺序更改为与第一行中的顺序相同并且它起作用了。
关于sql - PostgreSQL - 数据错误 : invalid input syntax for type numeric: "Product",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13859748/
我不知道为什么我得到这些结果。 ++ +add +syntax error 2 ++ +add +syntax error 4 ++是我的输入,并且lex会回显每个字符,并且每当获得+时yacc打印就
这个问题在这里已经有了答案: Syntax error on print with Python 3 [duplicate] (3 个回答) 关闭8年前。 为什么 Python 在第 9 行的简单 p
我有一个非常简单的 SQL 语句 SELECT * FROM Table; 但是,我的查询引擎返回一个语法错误。为什么? 错误详情: An unhandled exception of type 'S
我正在尝试编写一些代码来模拟具有两个三态缓冲器和VHDL中的上拉电阻的电路。下面是我的代码: library ieee; use ieee.std_logic_1164.all; entity Pul
我已经编写了这个mergesort实现,如果将除法功能放在mergesort函数之外,效果很好。但是,当我尝试使除法成为mergesort的内部函数时,遇到语法错误。 我知道,对此必须有一些非常简单的
(我是 Linux 和 Vim 新手,我正在尝试学习 Vim,但我遇到了一些无法解决的问题) 我安装的 Linux (Ubuntu 8.04) 无法使用 Vim 7.1.138 进行更新。 我的 vi
这个错误让我抓狂,我需要帮助。 Syntax Error: Token '{' invalid key at column 2 of the expression [{{ field }}.$erro
原标题是“特定于语言的配色方案防止较简单的配色方案为某些特定于语言的标签着色” 我正在使用 gVim 7.3(在 Ubuntu 12.04 Arch x86/64 上,这很重要)。 更新(2013-0
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我正在编写某种“编译器”:它读取游戏的描述(包括房间,角色,事物等)。将其视为冒险类游戏的视觉版本,但存在很多简单问题。 当我运行“编译器”时,输入中出现语法错误,我不知道为什么。这是我的yacc输入
我正在构建一个示例应用程序(请参阅plunk https://plnkr.co/edit/vDXcSPrOjw5qvBQKcYvw?p=preview)。 var myA
语法错误文件: 我想知道在哪里可以看到确切的错误信息。vivado中没有任何提示。 谢谢! 最佳答案 通常,您可以检查屏幕底部的消息选项卡。无论如何,Vivado并不是特别擅长告诉您代码有什么问题(我
您好,这是我的迷你编程语言的野牛语法文件: %{ #include #include #include #include "projectbison.tab.h" void y
Fmax我的代码中的参数报告为:No Paths to report .因此,我试图使用 set_input_delay 设置与定义时钟的输入信号关系。 .但是,错误报告指出: Verilog HDL
我正在开发一个使用 Twig 的 Symfony2 项目,文件类型为 myfile.html.twig。 Vim 不会自动检测语法突出显示,因此不应用任何语法。打开文件后,我可以使用 :set syn
这是一个相对简单的代码,用于“在半径为2个单位的圆象限上使用中坐标规则评估pi”。 main.alg BEGIN REAL x, y, sumy, pi; INT n := lowerlimit, p
我对我的简单插入所产生的错误感到非常困惑。我已经通过不同的检查器多次检查了语法并搜索了类似的问题,但没有找到解决方案。 错误看起来像这样: 'SQLSTATE[42000]: Syntax error
我尝试了以下代码: with x as 1: y = 1 with z as 1: w = 1 编译器报告了 SyntaxError:语法无效。有什么问题? [已编辑:]我想做的是:
我在 Webstorm 中使用 vue 框架,使用 ES6 语法。 我已经安装了 vue-for-idea 插件,如果我使用纯 ES5 语法,一切都会很顺利。 但是代码的ES6部分似乎还没有被识别,并
我将我认为有用的代码示例作为文本文件保存在我的计算机上。我将它们存储为 txt 文件而不是编写它们的语言,以便它们将在 Notepad++ 中打开而不是在编辑器中打开(即我不希望我的 c++ 示例在
我是一名优秀的程序员,十分优秀!