想知道是否有人可以在这里帮助我处理一些 SQL。我的任务是从遗留数据库系统中检索一些数据——这是一个运行 v7.23C1 的 IBM Informix DB。很可能我在这里尝试做的事情很简单,但对于我的生活,我无法弄清楚。
我习惯于 MS SQL Server,而不是任何其他数据库系统,而且这个系统似乎很旧: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”这样的值,我想包含一个嵌套字段,它将运行查询以获取给定日期范围内的销售额。我确信我可以将它们单独放在一起,但是在完全执行时似乎无法让编译器对我的代码感到满意。
可能类似于(注意,此特定查询是针对另一列的,但您明白了):
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)
让事情变得更糟的是我无法访问运行该数据库的服务器。目前,我有一个自定义 C# 应用程序,它通过 ODBC 驱动程序连接并执行原始 SQL,将结果解析回 .CSV。
任何和所有的帮助表示赞赏!