这条sql加了order by就有问题了,
前面都是正常运行的SELECT T_JYUTYOMEISAI.納引伝票番号,
       T_JYUTYOMEISAI.明細番号,
       T_JYUTYOMEISAI."種別コード",
       T_JYUTYOMEISAI.商品形態,
       T_JYUTYOMEISAI."品目コード",
       T_JYUTYOMEISAI.数量,
       T_JYUTYOMEISAI.単価,
       T_JYUTYOMEISAI.日数,
       T_JYUTYOMEISAI.金額,
       T_JYUTYOMEISAI.納引数,
       M_KHIMOKU.品目名
  FROM T_JYUTYOMEISAI, M_KHIMOKU
 WHERE (T_JYUTYOMEISAI."品目コード" = M_KHIMOKU."品目コード")
   and (T_JYUTYOMEISAI.商品形態 = '1' or T_JYUTYOMEISAI.商品形態 = '3')
   and (T_JYUTYOMEISAI.納引伝票番号 = 'N1087067200')
   AND T_JYUTYOMEISAI."顧客コード" like '03379966150%'   
union
SELECT T_JYUTYOMEISAI.納引伝票番号,
       T_JYUTYOMEISAI.明細番号,
       T_JYUTYOMEISAI.種別コード,
       T_JYUTYOMEISAI.商品形態,
       M_KHIMOKU."品目コード",
       T_JYUTYOMEISAI.数量 * M_SHIMOKU.数量,
       T_JYUTYOMEISAI.単価,
       T_JYUTYOMEISAI.日数,
       T_JYUTYOMEISAI.金額,
       T_JYUTYOMEISAI.納引数,
       M_KHIMOKU.品目名
  FROM T_JYUTYOMEISAI, M_SHIMOKU, M_KHIMOKU
 WHERE (T_JYUTYOMEISAI."品目コード" = M_SHIMOKU."セットコード")
   and (M_SHIMOKU."品目コード" = M_KHIMOKU."品目コード")
   and (T_JYUTYOMEISAI.商品形態 = '2')
   and (T_JYUTYOMEISAI.納引伝票番号 = 'N1087067200')
   AND T_JYUTYOMEISAI."顧客コード" like '03379966150%'
     ORDER BY M_KHIMOKU."品目コード"

解决方案 »

  1.   

    对日外包,各位帮我看看sql啊
      

  2.   

    也不要看日文,可能是语法错了,加了order by 就有错
      

  3.   

    1、你增加这个order by多余的,union会将两个查询结果进行排序的。
    2、如果你的两个数据集根本不重复,可以使用union all,然后union后再排序。
       select * from (select ..from...union all select ..from..) order by
    3、报错最好贴出错误信息。
      

  4.   

    Oracle.DataAccess.Client.OracleException ORA-00904: "M_KHIMOKU"."品目コード": 無効な識別子です。    
    日语的错误信息,翻译过来好像是“是无效的鉴别器。”
      

  5.   

    两条sql语句相连使用order by就报错?有什么更好的办法解决吗?
      

  6.   

    --按整个结果集的"品目コード"字段排序,用指定排序字段位置的方法
    SELECT T_JYUTYOMEISAI.納引伝票番号,
           T_JYUTYOMEISAI.明細番号,
           T_JYUTYOMEISAI."種別コード",
           T_JYUTYOMEISAI.商品形態,
           T_JYUTYOMEISAI."品目コード",
           T_JYUTYOMEISAI.数量,
           T_JYUTYOMEISAI.単価,
           T_JYUTYOMEISAI.日数,
           T_JYUTYOMEISAI.金額,
           T_JYUTYOMEISAI.納引数,
           M_KHIMOKU.品目名
      FROM T_JYUTYOMEISAI, M_KHIMOKU
     WHERE (T_JYUTYOMEISAI."品目コード" = M_KHIMOKU."品目コード")
       and (T_JYUTYOMEISAI.商品形態 = '1' or T_JYUTYOMEISAI.商品形態 = '3')
       and (T_JYUTYOMEISAI.納引伝票番号 = 'N1087067200')
       AND T_JYUTYOMEISAI."顧客コード" like '03379966150%'   
    union
    SELECT T_JYUTYOMEISAI.納引伝票番号,
           T_JYUTYOMEISAI.明細番号,
           T_JYUTYOMEISAI.種別コード,
           T_JYUTYOMEISAI.商品形態,
           M_KHIMOKU."品目コード",
           T_JYUTYOMEISAI.数量 * M_SHIMOKU.数量,
           T_JYUTYOMEISAI.単価,
           T_JYUTYOMEISAI.日数,
           T_JYUTYOMEISAI.金額,
           T_JYUTYOMEISAI.納引数,
           M_KHIMOKU.品目名
      FROM T_JYUTYOMEISAI, M_SHIMOKU, M_KHIMOKU
     WHERE (T_JYUTYOMEISAI."品目コード" = M_SHIMOKU."セットコード")
       and (M_SHIMOKU."品目コード" = M_KHIMOKU."品目コード")
       and (T_JYUTYOMEISAI.商品形態 = '2')
       and (T_JYUTYOMEISAI.納引伝票番号 = 'N1087067200')
       AND T_JYUTYOMEISAI."顧客コード" like '03379966150%'
       ORDER BY 5;--或者嵌套子查询
    select * from (
    SELECT T_JYUTYOMEISAI.納引伝票番号,
           T_JYUTYOMEISAI.明細番号,
           T_JYUTYOMEISAI."種別コード",
           T_JYUTYOMEISAI.商品形態,
           T_JYUTYOMEISAI."品目コード",
           T_JYUTYOMEISAI.数量,
           T_JYUTYOMEISAI.単価,
           T_JYUTYOMEISAI.日数,
           T_JYUTYOMEISAI.金額,
           T_JYUTYOMEISAI.納引数,
           M_KHIMOKU.品目名
      FROM T_JYUTYOMEISAI, M_KHIMOKU
     WHERE (T_JYUTYOMEISAI."品目コード" = M_KHIMOKU."品目コード")
       and (T_JYUTYOMEISAI.商品形態 = '1' or T_JYUTYOMEISAI.商品形態 = '3')
       and (T_JYUTYOMEISAI.納引伝票番号 = 'N1087067200')
       AND T_JYUTYOMEISAI."顧客コード" like '03379966150%'   
    union
    SELECT T_JYUTYOMEISAI.納引伝票番号,
           T_JYUTYOMEISAI.明細番号,
           T_JYUTYOMEISAI.種別コード,
           T_JYUTYOMEISAI.商品形態,
           M_KHIMOKU."品目コード",
           T_JYUTYOMEISAI.数量 * M_SHIMOKU.数量,
           T_JYUTYOMEISAI.単価,
           T_JYUTYOMEISAI.日数,
           T_JYUTYOMEISAI.金額,
           T_JYUTYOMEISAI.納引数,
           M_KHIMOKU.品目名
      FROM T_JYUTYOMEISAI, M_SHIMOKU, M_KHIMOKU
     WHERE (T_JYUTYOMEISAI."品目コード" = M_SHIMOKU."セットコード")
       and (M_SHIMOKU."品目コード" = M_KHIMOKU."品目コード")
       and (T_JYUTYOMEISAI.商品形態 = '2')
       and (T_JYUTYOMEISAI.納引伝票番号 = 'N1087067200')
       AND T_JYUTYOMEISAI."顧客コード" like '03379966150%')
       ORDER BY M_KHIMOKU."品目コード";--如果要单独对第二个结集排序之后再union,也使用嵌套子查询
    SELECT T_JYUTYOMEISAI.納引伝票番号,
           T_JYUTYOMEISAI.明細番号,
           T_JYUTYOMEISAI."種別コード",
           T_JYUTYOMEISAI.商品形態,
           T_JYUTYOMEISAI."品目コード",
           T_JYUTYOMEISAI.数量,
           T_JYUTYOMEISAI.単価,
           T_JYUTYOMEISAI.日数,
           T_JYUTYOMEISAI.金額,
           T_JYUTYOMEISAI.納引数,
           M_KHIMOKU.品目名
      FROM T_JYUTYOMEISAI, M_KHIMOKU
     WHERE (T_JYUTYOMEISAI."品目コード" = M_KHIMOKU."品目コード")
       and (T_JYUTYOMEISAI.商品形態 = '1' or T_JYUTYOMEISAI.商品形態 = '3')
       and (T_JYUTYOMEISAI.納引伝票番号 = 'N1087067200')
       AND T_JYUTYOMEISAI."顧客コード" like '03379966150%'   
    union
    select * from(
    SELECT T_JYUTYOMEISAI.納引伝票番号,
           T_JYUTYOMEISAI.明細番号,
           T_JYUTYOMEISAI.種別コード,
           T_JYUTYOMEISAI.商品形態,
           M_KHIMOKU."品目コード",
           T_JYUTYOMEISAI.数量 * M_SHIMOKU.数量,
           T_JYUTYOMEISAI.単価,
           T_JYUTYOMEISAI.日数,
           T_JYUTYOMEISAI.金額,
           T_JYUTYOMEISAI.納引数,
           M_KHIMOKU.品目名
      FROM T_JYUTYOMEISAI, M_SHIMOKU, M_KHIMOKU
     WHERE (T_JYUTYOMEISAI."品目コード" = M_SHIMOKU."セットコード")
       and (M_SHIMOKU."品目コード" = M_KHIMOKU."品目コード")
       and (T_JYUTYOMEISAI.商品形態 = '2')
       and (T_JYUTYOMEISAI.納引伝票番号 = 'N1087067200')
       AND T_JYUTYOMEISAI."顧客コード" like '03379966150%'
         ORDER BY M_KHIMOKU."品目コード");
      

  7.   

    等下我试下,对日开发就是麻烦的一米,日本人太变态了,不能有一点点瑕疵,bug改死了。