用于选择不同查询错误标志的“错误表达式”
CREATE OR REPLACE FORCE EDITIONABLE VIEW "KIR_V_KAS_MASUK_KET" ("...") as
SELECT
KMH.KODE_KAS,
KA.NIS,
KA.NAMA,
KA.KELAS,
KA.JURUSAN,
SELECT DISTINCT
(SELECT PERIODE FROM KIR_KAS_MASUK_HEAD WHERE KODE_KAS=:P16_KODE_KAS) PERIODE,
TO_CHAR((SELECT SUM(PEMBAYARAN) FROM KIR_KAS_MASUK_DETAIL WHERE KODE_KAS = :P16_KODE_KAS), '999,999,999') TOTAL_PEMBAYARAN,
TO_CHAR(WAJIB_BAYAR * (SELECT COUNT(*) FROM KIR_ANGGOTA WHERE STATUS != 'TIDAK AKTIF'), '999,999,999') TOTAL_WAJIB_BAYAR,
KMD.KETERANGAN
FROM
KIR_ANGGOTA KA,
KIR_KAS_MASUK_HEAD KMH,
KIR_KAS_MASUK_DETAIL KMD
WHERE
KMD.KODE_KAS=KMH.KODE_KAS
AND
KMD.NIS=KA.NIS
/我想用9列制作一个视图表,其中3列是问题所在,因为在select查询中选择distinct是错误的,但我真的不知道解决方案,因为我只是添加那些'select distinct‘查询,而不知道任何使它出错的东西。我希望有人纠正我,这样我就可以在我的应用程序中制作使用视图表查询创建的结果。。
发布于 2022-11-18 14:06:55
有几个问题:
这是“固定”版本。可能仍然存在错误,因为我无法访问您的环境,也无法访问表定义和示例数据。
CREATE OR REPLACE FORCE EDITIONABLE VIEW "KIR_V_KAS_MASUK_KET" ("...") as
SELECT
KMH.KODE_KAS,
KA.NIS,
KA.NAMA,
KA.KELAS,
KA.JURUSAN,
(SELECT DISTINCT PERIODE FROM KIR_KAS_MASUK_HEAD WHERE KODE_KAS=v('P16_KODE_KAS')) PERIODE,
(SELECT DISTINCT TO_CHAR((SELECT SUM(PEMBAYARAN) FROM KIR_KAS_MASUK_DETAIL WHERE KODE_KAS = v('P16_KODE_KAS')), '999,999,999') TOTAL_PEMBAYARAN,
(SELECT DISTINCT TO_CHAR(WAJIB_BAYAR * (SELECT COUNT(*) FROM KIR_ANGGOTA WHERE STATUS != 'TIDAK AKTIF'), '999,999,999') TOTAL_WAJIB_BAYAR,
KMD.KETERANGAN
FROM
KIR_ANGGOTA KA
JOIN KIR_KAS_MASUK_DETAIL KDM ON KMD.NIS=KA.NIS
JOIN KIR_KAS_MASUK_HEAD KMH ON KMD.KODE_KAS=KMH.KODE_KAS
/话虽如此,看来这只会在一页中使用。在这种情况下,我不会创建一个视图。看上去太过分了。
发布于 2022-11-18 10:53:16
显而易见的是,语法是错误的。应该是这样的(简化):
create view ... as
select DISTINCT kmh.kode_kas, ... --> DISTINCT goes here
(select periode from ... ) periode,
(select to_char(sum(pembayaran, '999,999,999)) from ...) total_pembayaran
from kir_anggota ka, ...
where ...注意,所有子查询(对于periode、total_pembayaran、.)必须返回单个值。他们的where条款必须强制执行。
https://stackoverflow.com/questions/74488465
复制相似问题