首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据类型不匹配的PostgreSQL交叉表查询

数据类型不匹配的PostgreSQL交叉表查询
EN

Stack Overflow用户
提问于 2016-02-18 09:31:57
回答 1查看 1.1K关注 0票数 0

我正在尝试运行以下查询:

代码语言:javascript
复制
SELECT *
FROM CROSSTAB('SELECT a.marketing_product_group::VARCHAR
                    ,(a.sales_year || '' - '' || a.sales_quater)::VARCHAR AS attribute
                    ,sum(a.sales_value)::NUMERIC AS sales_value
               FROM data_Warehouse.sales_summary a
               WHERE a.customer_code = '' SCAND ''
                     AND a.invoice_date >= '' 2015 - 04 - 01 ''
               GROUP BY a.marketing_product_group
                       ,a.sales_year || '' - '' || a.sales_quater
               ORDER BY a.sales_year || '' - '' || a.sales_quater') 
AS CT(marketing_product_group VARCHAR
       ,period1 VARCHAR
       ,period2 VARCHAR
       ,period3 VARCHAR
       ,period4 VARCHAR)

我在这个网站上读过许多项目,并试图改正它,但我仍然会发现一个可怕的错误:

返回和sql元组描述不兼容。

子查询以如下方式返回数据:

代码语言:javascript
复制
marketing_product_group ;attribute; sales_value
"K3"            ; "2016-1"  ;600.0900000000000000
"CASSETTES"     ; "2016-1"  ;291.0000000000000000
"ENDO FILES"    ; "2016-1"  ;254.2500000000000000
"NEOZYME"       ;"2016-1"   ;15.5300000000000000
"PANAVIA F"     ;"2016-1"   ;47.8600000000000000
"BOUTIQUE NIGHT";"2016-2"   ;1012.5000000000000000
"ENDO MISC"     ;"2016-2"   ;20.1000000000000000
"GLOVES 17"     ;"2016-2"   ;617.2000000000000000
"DIATECH"       ;"2016-2"   ;8.1800000000000000
""              ;"2016-2"   ;47.5000000000000000
"CARESHOP 1"    ;"2016-2"   ;14.4800000000000000
"CLASSIC 1"     ;"2016-3"   ;49.5000000000000000
"GLOVES 15"     ;"2016-3"   ;70.0000000000000000
"SOFLEX"        ;"2016-4"   ;103.2000000000000000
"OMNIA"         ;"2016-4"   ;64.0000000000000000

它可能是如此简单的东西,我已经飞过它?

EN

回答 1

Stack Overflow用户

发布于 2016-02-18 11:30:05

因为您的值是强制转换的,所以numeric

代码语言:javascript
复制
sum(a.sales_value)::NUMERIC AS sales_value

您的输出列也需要是numeric

代码语言:javascript
复制
...
AS CT(marketing_product_group VARCHAR
       ,period1 NUMERIC 
       ,period2 NUMERIC 
       ,period3 NUMERIC 
       ,period4 NUMERIC )

这里还有其他一些奇怪的地方,但是由于您没有提供适当的信息(Postgres版本,表定义),我将在此保留它。

基本要素:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35477566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档