想知道是否有人可以在這裏幫助我處理一些SQL。我的任務是從遺留數據庫系統中檢索一些數據 - 它是運行v7.23C1的IBM Informix DB。這很可能是因爲我想在這裏做的事很簡單,但對於我的生活我無法弄清楚。IBM Informix SQL語法幫助
我已經習慣了MS SQL服務器,而不是任何其他數據庫系統,而這一次似乎很老:(?)http://publib.boulder.ibm.com/epubs/pdf/3731.pdf
基本上,我只是想運行一個查詢,包括嵌套,但我可以似乎無法弄清楚如何做到這一點。因此,舉例來說,我有一個查詢,看起來像這樣:
SELECT cmprod.cmp_product,
(stock.stk_stkqty - stock.stk_allstk) stk_bal,
stock.stk_ospurch,
stock.stk_backord,
'Current Sales Period',
'Current Period -1',
'Current Period -2',
cmprod.cmp_curcost,
stock.stk_credate,
stock.stk_lastpurch,
stock.stk_binref
FROM informix.stock stock,
informix.cmprod cmprod
WHERE stock.stk_product = cmprod.cmp_product
AND (cmp_category = 'VOLV'
OR cmp_category = 'VOLD'
OR cmp_category = 'VOLA')
AND stk_loc = 'ENG';
現在,基本上在那裏我有這樣價值觀「本期-1」我想包括嵌套場將運行一個查詢,以獲得銷售在給定的日期範圍內。我確信我可以將它們分開放置,但當完全執行時似乎無法讓編譯器對我的代碼感到滿意。
大概就像(NB,這種特定的查詢是另列,但你的想法):
SELECT s.stmov_product, s.stmov_trandate, s.stmov_qty
FROM informix.stmove s
WHERE s.stmov_product = '1066823'
AND s.stmov_qty > 0
AND s.stmov_trandate IN (
SELECT MAX(r.stmov_trandate)
FROM informix.stmove r
WHERE r.stmov_product = '1066823'
AND r.stmov_qty > 0)
是什麼讓事情變得更糟糕的是,我沒有對服務器的訪問,這數據庫正在運行。目前,我有一個通過ODBC驅動程序連接的自定義C#應用程序,並執行原始SQL,將結果解析回.CSV。
任何和所有幫助讚賞!
是的,這是我最終想要做的。我同意它需要替換,但那不是我能做的。我可能最好將我需要的所有數據去除到內存中並自己處理,而不是在Informix SQL中對其進行巧妙處理。 – absentmindeduk
非常好,謝謝喬納森 - 你正在向合唱團傳遞升級信息! ;) – absentmindeduk