Create a Complex Filter Via AMPscript

Use a complex filter to sort out desired records from a larger set of data. For example, the code sample below separates out subscribers in a given email send definition instance that received a send after December 1st, 2009. Use this sample AMPscript as a model to create your own code.

Set @retrieveRequest_ = CreateObject("RetrieveRequest")
    SetObjectProperty(@retrieveRequest,"ObjectType","Send")
    AddObjectArrayItem(@retrieveRequest,"Properties","Status")
    AddObjectArrayItem(@retrieveRequest,"Properties","NumberTargeted")
    AddObjectArrayItem(@retrieveRequest,"Properties","NumberSent")
    AddObjectArrayItem(@retrieveRequest,"Properties","EmailSendDefinition.CustomerKey")
    AddObjectArrayItem(@retrieveRequest,"Properties","SentDate")

Set @sf1 = CreateObject("SimpleFilterPart")
    SetObjectProperty(@sf1,"Property","EmailSendDefinition.CustomerKey")
    SetObjectProperty(@sf1,"SimpleOperator","equals")
    AddObjectArrayItem(@sf1,"Value","KEY")

Set @sf2 = CreateObject("SimpleFilterPart")
    SetObjectProperty(@sf2,"Property","SendDate")
    SetObjectProperty(@sf2,"SimpleOperator","greaterThan")
    AddObjectArrayItem(@sf2,"Value",Format("12/1/2009","yyyy-MM-dd"))

Set @cf1 = CreateObject("ComplexFilterPart")
    SetObjectProperty(@cf1,"LeftOperand",@sf1)
    SetObjectProperty(@cf1,"RightOperand",@sf2)
    SetObjectProperty(@cf1,"LogicalOperator","AND")

SetObjectProperty(@retrieveRequest,"Filter",@cf1)