zoukankan      html  css  js  c++  java
  • postgres column reference "id" is ambiguous

    在执行函数时会出现该问题
    解决办法:
    在查询时为表格指定别名,并且查询字段指定表名如:table.field_name
    不过说来也奇怪,我就查一个表,怎么会出现模糊的字段呢

    -- 销售报表查询条件,汇总方式可能会有多种情况,
    /*
        月环比:
        1. 每个客户的环比,
        2. 每个销售人员的环比
        3. 每种产品的环比
    
        年同比:
        客户,销售员,产品,基本上不会有三个维度一起查看的情况。
    
        数据累加:
        这个可以在两种表中添加;
    
        所以基础表格字段:销售员,客户,产品,时间,销量,销售额
        根据用户选择的条件不同进行不同维度的汇总。
    
        需要存储一个动态字段:时间类型,统计维度。
        传入不同的参数返回不同的值,这个感觉需要使用函数来实现,返回table
     */
    drop function if exists func_sale_report;
    create or replace function func_sale_report(par_field varchar, par_date_type varchar,par_date varchar)
        returns table
                (
                    field1          varchar,
                    field_value     varchar,
                    date_type       varchar,
                    date_value      varchar,
                    date_year       varchar,
                    price_subtotal1 numeric,
                    delivered       numeric
                )
    as
    $$
    begin
        return query
            execute format('select ''%1$s''::varchar,
                            A.%1$s::varchar,
                            ''%2$s''::varchar,
                            to_char(A.date, ''%2$s'')::varchar as month,
                            to_char(A.date, ''YYYY'')::varchar as year,
                            sum(A.price_subtotal) as price_subtotal,
                            sum(A.qty_delivered)  as qty_delivered
                     from sale_report as A where date>''%3$s''::date
                     group by A.%1$s,to_char(A.date, ''YYYY''), to_char(A.date, ''%2$s'')
                     order by A.%1$s,to_char(A.date, ''YYYY''),to_char(A.date, ''%2$s'')', par_field, par_date_type,par_date);
    end
    $$ language plpgsql volatile;
    

    将就着看吧,用excute 执行sql 我是比较排斥的,但是没办法,有些变量是字段.


    懂得,原来世界如此简单!

  • 相关阅读:
    Aster寻路算法1(转)
    谈谈项目纵向项目验收
    要有兴趣
    用c# 操作 文件的方法
    使用ACT进行测试
    Generated servlet error: keyword cannot be resolved or is not a type
    米尔顿艾瑞克森的催眠引导词
    c# webcliend 来制作 网页搜捕器
    网页木马的解决方案
    用Swing实现数据表格功能
  • 原文地址:https://www.cnblogs.com/qianxunman/p/15354958.html
Copyright © 2011-2022 走看看