PhixFlow Help

Collecting data from a database using a supplied query

By the end of this chapter you will be able to:

  • Create a Database Collector directly in a model
  • Collect data from a database using a supplied query

Collect data from a database using a supplied query

You will add a Database Collector to use a query that has been supplied to you, which will retrieve the last bill for each customer:

  • Drag - Add a new Database Collector onto the modelling pane
  • In the new Database Collector form that pops up, enter the Name: Last bill amount
  • Press OK

Double-click on the Database Collector to open the details form and complete the configuration:

  • In the tab Query String enter:
select
 CustomerRef, BillAmount
 from
 SOURCE_CUST_BILLS SCB1
 where 
 BillDate = (select max(BillDate) from SOURCE_CUST_BILLS SCB2
 where SCB2.CustomerRef = SCB1.CustomerRef)
  • Go to the Details tab
    • Select the Datasource CRM
    • Tick the flag Enabled
    • Tick the flag Allow Non-Scheduled Collection
  • Press Apply
  • Return to the Query String tab, and press - Run query and see result
  • In a window that pops up you can see the data that will be returned by the query; this feature is a useful way to check that your query works
  • Close the data window
  • Press the button  - Create a new Stream using the attributes returned from the query

A new Stream will appear on your model to store the results of the query.

  • Run Analysis on the new Stream and check that the data has been loaded from the database

Enrich customer data with last billed amount

You will now add a Lookup Pipe from the Stream LastBillAmount into Customer Details with Region, linking the data across the 2 Streams using the Attribute CustomerRef:

  • Hover over LastBillAmount and press  - Add a new Connector
  • Move the pointer over the top of Customer Details with Region and select – this will attach the end of the pipe to the selected Stream
  • In the Pipe Setup form that pops up:
    • Enter the Name: lba
    • Type: Look-up
    • Data To Read: leave as the default – Latest
    • Press 
    • In the matching attributes form that pops up create a match:
      • Drag the attribute CUSTOMERREF from the left hand box into the list of matching attributes
      • Drag the attribute CustomerRef from the right hand box into the list of matching attributes – on top of the entry for CustomerRef you created above
        • This means that the lookup will match records in the reference data (LastBillAmount) where CUSTOMERREF = CustomerRef in the output data (Customer Details with Region)
      • Press  on the pipe configuration form
    • A lookup pipe will appear linking LastBillAmount to Customer Details with Region
    • Drag the Attribute BILLAMOUNT from the Stream LastBillAmount onto Customer Details with Region
    • Run Analysis on Customer Details with Region
    • Check in the data in Customer Details with Region that the last billed amount has been retrieved for all records

Please let us know if we could improve this page feedback@phixflow.com