我想编写一个基于以下条件的查询。在这方面你能帮帮我吗?
RecordID MergeRecordID Status StatusTime 3700432 289015开具发票25-5月-09 3700433 289015发票25-5月-09 3700434 289015发票08-12月09 3700435 289015错误08-12月
我有一个名为billingValues_tbl的表,其中RecordID是主键。请注意,MergeRecordID包含多个记录ID。
步骤1:我想基于MergeRecordID进行排序。在上面的例子中,我们将得到4条记录。
Step2:所有记录都应该具有Invoiced状态。如果列Stattus中的值不是“发票”,我应该跳过合并,即我不应该考虑这一记录。然后,我将去另一个合并/记录组合。我已经写了如下所示的查询,但它没有给我想要的结果。
SELECT RECORDID,MERGERECORDID,STATUS,STATUSTIME
FROM BE242.BILLINGVALUES_TBL BV1
WHERE BV1.MERGERECORDID IN ( SELECT BV2.MERGERECORDID
FROM BILLINGVALUES_TBL BV2
WHERE BV2.RECORDID = BV1.RECORDID
AND BV2.MERGERECORDID = BV1.MERGERECORDID
AND BV2.STATUS IN ('Invoiced', 'Cancelled') )
ORDER BY BV1.MERGERECORDID DESC;有人能尽快帮我吗?
发布于 2013-11-08 07:34:41
对我来说,虽然在这个场景中没有必要,但您似乎两次选择了表。
如果您只想拥有状态等于发票或取消状态的所有记录,则要比一个简单的
SELECT RECORDID,MERGERECORDID,STATUS,STATUSTIME
from BILLINGVALUES_TBL
where STATUS IN ('Invoiced', 'Cancelled')应该这么做。
否则,不仅要检查内部选择中的状态,而且要检查周围选择中的状态。
https://stackoverflow.com/questions/19852869
复制相似问题