|  | Posted by Steve on 09/15/05 06:17 
I have a SQL query I'm invoking via VB6 & ADO 2.8, that requires three"Left Outer Joins" in order to return every transaction for a specific
 set of criteria.
 
 Using three "Left Outer Joins" slows the system down considerably.
 
 I've tried creating a temp db, but I can't figure out how to execute
 two select commands. (It throws the exception "The column prefix
 'tempdb' does not match with a table name or alias name used in the
 query.")
 
 Looking for suggestions (and a lesson or two!) This is my first attempt
 at SQL.
 
 Current (working, albeit slowly) Query Below
 
 TIA
 
 SELECT
 
 LEDGER_ENTRY.entry_amount,
 LEDGER_TRANSACTION.credit_card_exp_date,
 LEDGER_ENTRY.entry_datetime,
 LEDGER_ENTRY.employee_id,
 LEDGER_ENTRY.voucher_explanation,
 LEDGER_ENTRY.card_reader_used_ind,
 STAY.room_id,
 GUEST.guest_lastname,
 GUEST.guest_firstname,
 STAY.arrival_time,
 STAY.departure_time,
 STAY.arrival_date,
 STAY.original_departure_date,
 STAY.no_show_status,
 STAY.cancellation_date,
 FOLIO.house_acct_id,
 FOLIO.group_code,
 LEDGER_TRANSACTION.original_receipt_id
 
 FROM
 
 mydb.dbo.LEDGER_ENTRY LEDGER_ENTRY,
 mydb.dbo.LEDGER_TRANSACTION LEDGER_TRANSACTION,
 
 mydb.dbo.FOLIO FOLIO
 LEFT OUTER JOIN
 mydb.dbo.STAY_FOLIO STAY_FOLIO
 ON
 FOLIO.folio_id = STAY_FOLIO.folio_id
 LEFT OUTER JOIN
 mydb.dbo.STAY STAY
 ON
 STAY_FOLIO.stay_id = STAY.stay_id
 LEFT OUTER JOIN
 mydb.dbo.GUEST GUEST
 ON
 FOLIO.guest_id = GUEST.guest_id
 
 WHERE
 
 LEDGER_ENTRY.trans_id = LEDGER_TRANSACTION.trans_id
 AND FOLIO.folio_id = LEDGER_TRANSACTION.folio_id
 AND LEDGER_ENTRY.payment_method='3737******6100'
 AND LEDGER_ENTRY.property_id='abc123'
 
 ORDER BY
 
 LEDGER_ENTRY.entry_datetime DESC
 [Back to original message] |