List builder/operator problem

We (non ITS staff) are trying to pull a list in list builder to give us constituents who have a ticket order in a given date range which was paid with a particular payment type.  We built the list with the following criteria:

ticket order date between X and Y
Payment type in Z

The SQL code reads

Select Distinct a.customer_no
 From V_CUSTOMER_WITH_PRIMARY_GROUP a (Nolock)
JOIN LV_SMM_MAX_CONTRIBUTION e (Nolock) ON e.customer_no = a.customer_no
JOIN lvs_tkt_hist f (Nolock) ON f.customer_no = a.customer_no
JOIN t_payment g (Nolock) ON g.customer_no = a.customer_no
 Where  IsNull(a.inactive, 1) = 1
 AND e.cont_amt = 99.00
 AND f.order_dt between  '2012/01/01' And '2012/09/20 23:59:59'
 AND g.pmt_method in (54,53,69)

Trouble is, upon spot checking, it seems to be including customers who have an order in the right date range and who have a SEPARATE order with the appropriate payment type.

We're at a loss - any thoughts on how we can get this to join correctly to require the date and payment type both be on the same order?  We looked at the descriptions for HAS and IN operators and it seemed that the IN operator should be correct, but obviously we are still missing something.

Thanks!

Parents
  • And one of my co-workers just pointed out to me that adding payment method to your ticket history may not be practical because you can have multiple payment methods used in an order, which I had forgotten.

     

    You are probably going to need to get IT assistance here to write a query for you that makes the right joins between orders and payments to get you the results you want.  You’ll need to join either your ticket history table (if it includes order #) or T_ORDER to T_TRANSACTION on the order # and then join T_TRANSACTION to T_PAYMENT in order to link payments to orders.  I’m not very proficient with writing SQL queries, so I’m not going to attempt to be more specific than that, but that is the general direction you want to go.

     

    Also keep in mind, that because of the possible multip-payments issue, the above query is only going to give you an order where a particular payment method was used, not necessarily one where it was the only payment method used or the payment method was used to pay off a specific order. 

     

    Kevin Sheehan

    Senior Documentation & Learning Resources Specialist

    Tessitura Network

    +1 888 643 5778 x 329

    ksheehan@tessituranetwork.com

     

Reply
  • And one of my co-workers just pointed out to me that adding payment method to your ticket history may not be practical because you can have multiple payment methods used in an order, which I had forgotten.

     

    You are probably going to need to get IT assistance here to write a query for you that makes the right joins between orders and payments to get you the results you want.  You’ll need to join either your ticket history table (if it includes order #) or T_ORDER to T_TRANSACTION on the order # and then join T_TRANSACTION to T_PAYMENT in order to link payments to orders.  I’m not very proficient with writing SQL queries, so I’m not going to attempt to be more specific than that, but that is the general direction you want to go.

     

    Also keep in mind, that because of the possible multip-payments issue, the above query is only going to give you an order where a particular payment method was used, not necessarily one where it was the only payment method used or the payment method was used to pay off a specific order. 

     

    Kevin Sheehan

    Senior Documentation & Learning Resources Specialist

    Tessitura Network

    +1 888 643 5778 x 329

    ksheehan@tessituranetwork.com

     

Children
No Data