最終的に私はAS/400(グリーンスクリーン)のSQLでいくつかのデータを集めてグループ化したいと思います。ここでGROUP BY AS/400の日付形式をSQLの日付に変換しました
は、最初のSQLクエリであり、その対応する結果:
SELECT ITNBRV, /* Item */
ODDTRV, OQTYRV /* Order due due, Order quantity */
FROM ORDREVLA /* MRP Recommendations */
WHERE ITNBRV = '17000' OR ITNBRV = '19000' /* Returns only items 17000, 19000 */
私はそのデータを取得し、このようにそれを要約したいと思います:
Item number Order Due Date Order Quantity
17000 11/17 1296
17000 12/17 1296
17000 01/18 3564
17000 02/18 3888
19000 11/17 68100
19000 12/17 1800
19000 01/18 23220
これは私が日付形式を変換するために使用したものです:
次のような結果とSELECT ITNBRV,
month(
substr(ODDTRV,4,2) ||'/'||
substr(ODDTRV,6,2) ||'/'||
substr(ODDTRV,2,2)) ||'/'||
year(
substr(ODDTRV,4,2) ||'/'||
substr(ODDTRV,6,2) ||'/'||
substr(ODDTRV,2,2)) AS Month_Year,
OQTYRV
FROM ORDREVLA
WHERE ITNBRV = '17000' OR ITNBRV = '19000'
:
SELECT ITNBRV,
month(
substr(ODDTRV,4,2) ||'/'||
substr(ODDTRV,6,2) ||'/'||
substr(ODDTRV,2,2)) ||'/'||
year(
substr(ODDTRV,4,2) ||'/'||
substr(ODDTRV,6,2) ||'/'||
substr(ODDTRV,2,2)) AS Month_Year,
OQTYRV
FROM ORDREVLA
WHERE ITNBRV = '17000' OR ITNBRV = '19000'
GROUP BY (month(
substr(ODDTRV,4,2) ||'/'||
substr(ODDTRV,6,2) ||'/'||
substr(ODDTRV,2,2)))
しかし、このエラーメッセージました:
私は同じコンバージョン数でGROUP BYを使用しようとした
Column ITNBRV or expression in SELECT list not valid.
を
ありがとう!
DB2は、SQL標準に従っています。これは、ISO/IEC 9075標準、パート1〜4,10,11,14です。v7.2およびv7.3は2016標準をサポートし、v7.1は以前の標準をサポートします。 – jmarkmurphy
@jmarkmurphy:何かがまだオフです。「ODDTRV列またはSELECTリストの式が無効です」というエラーメッセージが表示されるようになりました。 – Sescopeland
グループ内の(年(...))式が必要だと思っています... – Charles