Biswajit:
私は「このエラー取得しています表現BYないGROUPを Javaでこのコードを実行しているが、SQL Developerで正常に動作している間」。必ずどこが間違ってやっているわけではありません。誰も助けてください
エラー: SQLSyntaxErrorException: ORA-00979: not a GROUP BY expression
SELECT data.portfolioid AS "CUSTOMER ID",
company.name AS "COMPANY",
trunc(data.startdate, :format) AS "USAGE DATE",
SUM(data.sessions) AS "SESSIONS",
SUM(data.zerosessions) AS "ZEROSESSIONS",
SUM(data.sms) AS "SMS",
SUM(data.VOICEDURATION) AS "VOICEDURATION",
SUM(data.totalbytes) AS "TOTAL BYTES",
SUM(data.billedbytes) AS "NORMALIZED BYTES",
sim.custom0 AS "CUSTOM1"
FROM
(SELECT portfolioid,
context,
startdate,
totalbytes,
billedbytes,
sessions,
zerosessions,
sms,
voiceduration,
sim.imsi
FROM nmma_abc_mo DATA
INNER JOIN nn_abc sim ON data.imsi = sim.imsi
WHERE portfolioid IN
(SELECT pf.id
FROM nc_vt_abc cb,
nn_abc pcb,
nn_abc pf
WHERE pcb.id = cb.productid
AND pf.id = pcb.portfolioid
AND pf.domainid = :domainid
AND (:portfolioid = -1
OR pf.id = :portfolioid) )
AND data.startdate BETWEEN to_date(:startDate, 'YYYY-MM-DD HH24:MI:SS') AND to_date(:endDate, 'YYYY-MM-DD HH24:MI:SS') ) DATA
LEFT JOIN nnp_abc portfolio ON portfolio.id = data.portfolioid
LEFT JOIN nnpc_abc company ON company.id = portfolio.companyid
LEFT JOIN nnsc_v_abc sim ON sim.imsi = data.imsi
WHERE sim.custom0 IS NOT NULL
GROUP BY data.portfolioid,
company.name,
trunc(data.startdate, :format),
sim.custom0
ORDER BY data.portfolioid
投稿者:
私はコメントで述べたように、このような繰り返しプレースホルダを避けるために、内部クエリに書式あなたの日付を移動してみてください:
SELECT data.portfolioid AS "CUSTOMER ID",
company.name AS "COMPANY",
data.usage_date AS "USAGE DATE",
SUM(data.sessions) AS "SESSIONS",
SUM(data.zerosessions) AS "ZEROSESSIONS",
SUM(data.sms) AS "SMS",
SUM(data.VOICEDURATION) AS "VOICEDURATION",
SUM(data.totalbytes) AS "TOTAL BYTES",
SUM(data.billedbytes) AS "NORMALIZED BYTES",
sim.custom0 AS "CUSTOM1"
FROM (SELECT portfolioid,
CONTEXT,
trunc(startdate, :format) AS USAGE_DATE
totalbytes,
billedbytes,
sessions,
zerosessions,
sms,
voiceduration,
sim.imsi
FROM nmma_abc_mo data
INNER JOIN nn_abc sim ON data.imsi = sim.imsi
WHERE portfolioid IN (SELECT pf.id
FROM nc_vt_abc cb, nn_abc pcb, nn_abc pf
WHERE pcb.id = cb.productid
AND pf.id = pcb.portfolioid
AND pf.domainid = :domainid
AND (:portfolioid = -1 OR pf.id = :portfolioid))
AND data.startdate BETWEEN to_date(:startDate, 'YYYY-MM-DD HH24:MI:SS') AND
to_date(:endDate, 'YYYY-MM-DD HH24:MI:SS')
) data
LEFT JOIN nnp_abc portfolio ON portfolio.id = data.portfolioid
LEFT JOIN nnpc_abc company ON company.id = portfolio.companyid
LEFT JOIN nnsc_v_abc sim ON sim.imsi = data.imsi
WHERE sim.custom0 IS NOT NULL
GROUP BY data.portfolioid, company.name, data.usage_date, sim.custom0
ORDER BY data.portfolioid;