Click here to monitor SSC
SQLServerCentral is supported by Redgate
 
Log in  ::  Register  ::  Not logged in
 
 
 
        
Home       Members    Calendar    Who's On


Add to briefcase

Querying Results From a Query Expand / Collapse
Author
Message
Posted Tuesday, December 4, 2012 10:35 AM
Grasshopper

GrasshopperGrasshopperGrasshopperGrasshopperGrasshopperGrasshopperGrasshopperGrasshopper

Group: General Forum Members
Last Login: Sunday, October 20, 2013 3:13 PM
Points: 20, Visits: 79
Good Evening Everyone,

Seeing as in the next few weeks my boss is going to be increasing my workload dramatically i need to find a way of making my current work more efficient and I was hoping that some of you experts could help me with a particular issue which requires me to run 2 querys to produce one report.
I'll explain further...

When one of our engineers visits a site it is assigned a Reference (e.g. BS12345) and job type (TV Install, WIFI Install etc).
When this site is revisited for a service the assigned reference changes to BS12345R1 for the first revisit, R2 for the 2nd etc. and the job type will change to RVI (revisit). however the way it has been set up is there is no way to match the original job with the RVI.

Now what i do...
i query the database to extract all RVI's, i put this into excel, write a formula to remove the R1,R2 etc so im just left with the Job reference in the form BS12345,
I then put these references back into another query to bring back the original job type and job date
then i perform a VLookup to match the original Job with RVI to give me an original job type and RVI....

Very long winded...

I was hoping that someone could show me a technique in which i can use the results of the first query to run the 2nd without having to jump in and out of excel

Your help will be forever appreciated
Post #1392617
Posted Tuesday, December 4, 2012 10:52 AM


SSChampion

SSChampionSSChampionSSChampionSSChampionSSChampionSSChampionSSChampionSSChampionSSChampionSSChampion

Group: General Forum Members
Last Login: Today @ 10:03 AM
Points: 14,323, Visits: 37,400
we'd have to see the actual table structure and sample data (CREATE TABLE ...INSERT INTO)

but you could do something as easy as joining with an "exotic" join...that is not with an equals sign:
CREATE TABLE MainTable(Reference varchar(30),JobType varchar(30) )
INSERT INTO MainTable SELECT 'BS12345','TV Install' UNION ALL SELECT 'BS54321','WIFI Install'
CREATE TABLE RevisitTable(Reference varchar(30),JobType varchar(30))
INSERT INTO RevisitTable SELECT 'BS12345R1','RVI' UNION ALL SELECT 'BS12345R2','RVI'

SELECT * FROM MainTable
LEFT OUTER JOIN RevisitTable
ON CHARINDEX(MainTable.Reference,RevisitTable.Reference ) > 0

/*
Reference JobType Reference JobType
BS12345 TV Install BS12345R1 RVI
BS12345 TV Install BS12345R2 RVI
BS54321 WIFI Install NULL NULL
*/



Lowell

--
help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!
Post #1392621
Posted Tuesday, December 4, 2012 11:04 AM
SSCrazy

SSCrazySSCrazySSCrazySSCrazySSCrazySSCrazySSCrazySSCrazy

Group: General Forum Members
Last Login: Sunday, May 22, 2016 11:09 PM
Points: 2,599, Visits: 3,379
What happens when the main table contains BS1234 as well as BS12345 ?

As ugly as it might perform, you may need to join like this:

SELECT fld1, fld2, fld3
FROM VISITS AS V
LEFT JOIN REVISITS AS R
ON V.Reference = LEFT(R.Reference, CHARINDEX('R', R.Reference) - 1)



Steve
(aka sgmunson)

Health & Nutrition
Post #1392629
« Prev Topic | Next Topic »

Add to briefcase

Permissions Expand / Collapse