这条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."品目コード"
前面都是正常运行的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."品目コード"
2、如果你的两个数据集根本不重复,可以使用union all,然后union后再排序。
select * from (select ..from...union all select ..from..) order by
3、报错最好贴出错误信息。
日语的错误信息,翻译过来好像是“是无效的鉴别器。”
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."品目コード");