提取物產品的價格我們有一個電話撥號誰打電話我們存儲通知他們關於天然氣價格在其區域。SQL AS/400 - 每家店
我們有3個表(WBDAPP00,WBDCIE00,WBDCIA00)
WBDAPP00
是我們存儲有關呼叫的信息。
DANOID
= ID
DA#INT
,DA#IND
,DA#TEL
=電話號碼
DA#ENV
=組呼叫的數量,我們發送1條消息發送給幾個存儲。
DASTAT
=通話的狀態(按商店確認,取消運行,經我們確認,在暫停)
DADTHR
=最後的狀態修改
WBDCIE00
的時間戳是我們存儲有關組的信息店 CIE#EN
= ID
CIEDHC
=時間戳其中呼叫是有效的,我們可以稱之爲上午告訴價格將在14h30
CIE$OR
改變=價格定期
CIE$PL
=價格爲PL我們
CIE$SP
=超級
CIE$DI
=價格柴油價格
WBDCIA00
是互補的有關WBDAPP00
CIA#ST
=商店
CIA#AP
的ID =通話的ID
CIE#EN
=組呼的號碼
CIABAN
=這是商店的compagny的號碼
這是這些3個表
SELECT * FROM PRDCM/WBDAPP00 WHERE DA#ENV = 17258 OR DA#ENV = 17257
+--------+--------+--------+---------+--------+--------+----------------------------+-----------+--------+ | DANOID | DA#INT | DA#IND | DA#TEL | DA#ENV | DASTAT | DADTHR | DAPARM | DAMUSR | +--------+--------+--------+---------+--------+--------+----------------------------+-----------+--------+ | 100420 | 1 | 418 | 9600055 | 17257 | 4 | 2012-05-07-09.15.04.768228 |1;2;1;1;1;1| ISALAP | | 100421 | 1 | 819 | 7346491 | 17258 | 0 | 2012-05-07-09.23.32.362971 |0;4;0;1;0;0| ISALAP | | 100422 | 1 | 819 | 7624747 | 17258 | 1 | 2012-05-07-09.24.28.042330 |0;3;1;1;0;1| ISALAP | | 100423 | 1 | 819 | 6377874 | 17258 | 0 | 2012-05-07-09.23.32.803073 |0;3;0;1;0;1| ISALAP | | 100424 | 1 | 819 | 8742844 | 17258 | 1 | 2012-05-07-09.24.25.347116 |1;1;1;1;0;1| ISALAP | | 100425 | 1 | 819 | 8255744 | 17258 | 0 | 2012-05-07-09.23.33.207688 |1;3;1;1;0;1| ISALAP | +--------+--------+--------+---------+--------+--------+----------------------------+-----------+--------+
SELECT * FROM PRDCM/WBDCIE00 WHERE CIE#EN = 17258 OR CIE#EN = 17257
+--------+----------------------------+--------+--------+--------+--------+ | CIE#EN | CIEDHC | CIE$OR | CIE$PL | CIE$SP | CIE$DI | +--------+----------------------------+--------+--------+--------+--------+ | 17257 | 2012-05-04-17.00.00.000000 | 0 | 0 | 0 | 1,359 | | 17258 | 2012-05-07-09.30.00.000000 | 1,354 | 0 | 0 | 0 | +--------+----------------------------+--------+--------+--------+--------+
SELECT * FROM PRDCM/WBDCIA00 WHERE CIA#EN = 17258 OR CIA#EN = 17257
+--------+--------+--------+--------+ | CIA#ST | CIA#AP | CIA#EN | CIABAN | +--------+--------+--------+--------+ | 96 | 100420 | 17257 | 2 | | 316 | 100421 | 17258 | 4 | | 320 | 100422 | 17258 | 3 | | 321 | 100423 | 17258 | 3 | | 338 | 100424 | 17258 | 1 | | 366 | 100425 | 17258 | 3 | +--------+--------+--------+--------+
的示例輸出這是表之間的關係
CIA#AP
= DANOID
CIA#EN
= CIE#EN
= DA#ENV
我要提取的最後CIE$OR
(不爲0)和最後CIE$DI
(不爲0)爲每個CIA#ST
。
最後一個是由CIEDHC
(商品說明的順序)來確定。 DASTAT
需要是1或4。
這是我想從數據中提取上述的希望有一個例子:
+--------+--------+--------+ | CIA#ST | CIE$OR | CIE$DI | +--------+--------+--------+ | 96 | 0 | 1,359 | | 316 | 1,354 | 0 | | 320 | 1,354 | 0 | | 321 | 1,354 | 0 | | 338 | 1,354 | 0 | | 366 | 1,354 | 0 | +--------+--------+--------+
或者像這樣的,這是不理想,但我會容忍它在這種情況下
+--------+-------------+-------+ | CIA#ST | productType | price | +--------+-------------+-------+ | 96 | 3 | 1,359 | | 316 | 6 | 1,354 | | 320 | 6 | 1,354 | | 321 | 6 | 1,354 | | 338 | 6 | 1,354 | | 366 | 6 | 1,354 | +--------+-------------+-------+
對於那些不知道AS400的人,FETCH FIRST 1 ROWS ONLY
等於TOP 1
AND LIMIT 1
LAST
AS400中不存在的,所以我需要通過 SELECT Column1,Column2 FROM table1 ORDER BY Column2 DESC LIMIT 1
更換 SELECT LAST(Column1) AS test FROM table1
我試圖與子查詢,但你不能使用ORDER BY
和FETCH FIRST 1 ROWS ONLY
。
我們在V5R1中沒有任何PTF。
這是提取
SELECT CIA#ST,CIE$OR,CIE$DI,CIEDHC
FROM PRDCM/WBDAPP03
INNER JOIN PRDCM/WBDCIE01 ON CIE#EN = DA#ENV
INNER JOIN PRDCM/WBDCIA01 ON CIA#AP = DANOID
WHERE DASTAT IN (1,4)
ORDER BY CIEDHC,DA#ENV
FETCH FIRST 5 ROWS ONLY
+--------+--------+--------+----------------------------+ | CIA#ST | CIE$OR | CIE$DI | CIEDHC | +--------+--------+--------+----------------------------+ | 88 | 1,014 | 1,039 | 2010-08-25-09.00.00.000000 | | 89 | 1,014 | 1,039 | 2010-08-25-09.00.00.000000 | | 90 | 1,014 | 1,039 | 2010-08-25-09.00.00.000000 | | 91 | 1,014 | 1,039 | 2010-08-25-09.00.00.000000 | | 119 | 1,084 | 0 | 2010-08-25-09.00.00.000000 | | 522 | 1,014 | 1,039 | 2010-08-25-09.00.00.000000 | +--------+--------+--------+----------------------------+
我來試試您的建議的個例。
你將不得不修復你的樣本/結果數據,因爲沒有一行'CIE $ OR = 1.587'。考慮到您列出的關係,您似乎也沒有任何鏈接可以讓您將「CIA#ST = 119」連接到「CIE $ DI = 1.120」。匿名化你的數據非常棒,但我懷疑從這三個表中除了什麼_may_以外,有可能得到任何有用的東西。你能不能證明你到目前爲止所嘗試過的,只是爲了讓我們知道什麼是行不通的?並請列出您的操作系統版本(儘管我假設V6R1 +)。 –
這可以通過聰明地使用子查詢和聚合分組來解決。對於'WBDCIA00'和'WBDAPP00',您有兩種不同的連接條件。 CIA#AP = DANOID'和'CIA#EN <> DA#ENV'可以存在一場比賽嗎?如果您提供表格和字段的簡要說明,可能會更容易一些。 – jamesallman
@ X-Zero - >我獲得了放入真實數據的權限,所以我編輯了它。我會添加新的嘗試。我也加了我們的as400版本。 –