Solved

Enhance SQL Query

Posted on 2014-01-27
4
103 Views
Last Modified: 2014-02-04
Dear Sir/Madam, I am seeking help in SQL used in Sybase IQ Client.  Please see attached spreadsheet.  I work in the transportation industry working with commercial airline passenger's air fares.  When data is requested by customers, I have to ensure that at least 3 airlines operate a certain route (i.e. New York JFK-London) prior to providing the data (security measure).  My current query, as seen in "Query1" tab in the attached, is performing this correctly.  This query is run route by route.  I am trying to find a way to run it for all routes, with the taking into account the 3-airline rule.  I am not having much luck so I turn to the EE's for input.  Please advise with any questions.  Thank you. James.
Experts-Exchange-Question-012714.xlsx
0
Comment
Question by:James0903
  • 2
  • 2
4 Comments
 
LVL 34

Accepted Solution

by:
Brian Crowe earned 500 total points
ID: 39813579
Let me know if we're on the right track here...

DECLARE @Quarter		INT,
	@Year				INT,
	@MinOpCarrierCount	INT = 3,
	@OriginWAC			INT = NULL,	--Leaving NULL returns for all originwac values
	@DestWAC			INT = NULL	--Leaving NULL returns for all destwac values

IF OBJECT_ID('tempdb..#Route') IS NOT NULL
	DROP TABLE #Route

SELECT [year], [quarter], originwac, destwac
INTO #Route
FROM XXX
WHERE ISNULL(@OriginWAC, originwac) = originwac
	AND ISNULL(@DestWAC, destwac) = destwac
	AND [year] = @Year
	AND [quarter] = @Quarter
        AND originwac < 100
	AND destwac > 100
GROUP BY [year], [quarter], originwac, destwac
HAVING COUNT(1) >= @MinOpCarrierCount;

SELECT X.[year],
	X.[quarter],
	X.ORIGIN,
	X.DEST,
	SUM(X.PASSENGERS) AS PAX,
	SUM(X.MKTFARE * X.PASSENGERS) AS REV,
	CAST((X.REV / X.PAX) AS NUMERIC(8,2)) AS AVG_FARE
FROM XXX AS X
INNER JOIN #Route AS R
	ON X.[year] = R.[year]
	AND X.[quarter] = R.[quarter]
	AND X.originwac = R.originwac
	AND X.destwac = R.destwac

Open in new window

0
 
LVL 34

Expert Comment

by:Brian Crowe
ID: 39813586
Not sure how or if the above query will work in a Sybase environment but you posted in a SQL Server topic area so I thought I'd give it a shot.
0
 

Author Comment

by:James0903
ID: 39815486
BriCrowe, thank you.  I will give it a try.  If there is a Sybase section I will post it there is the above code has any issues.  Thank you.
0
 

Author Closing Comment

by:James0903
ID: 39833186
BriCrowe, thank you for the query.  My priorities were shifted around so I have to put this on the back burner.  I appreciate your help.
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction SQL Server Integration Services can read XML files, that’s known by every BI developer.  (If you didn’t, don’t worry, I’m aiming this article at newcomers as well.) But how far can you go?  When does the XML Source component become …
I have a large data set and a SSIS package. How can I load this file in multi threading?
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
Viewers will learn how to use the UPDATE and DELETE statements to change or remove existing data from their tables. Make a table: Update a specific column given a specific row using the UPDATE statement: Remove a set of values using the DELETE s…

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now