roblickley
asked on
SQL Code Help Please
I have the following query producing a recordset drawn from 2 tables.
It produces a list of horses that a rider "wants" to have associated on their account and also a list of horses they have actually ridden.
I have been asked for a facility to hide horses from a riders account - which is more applicable to the ones they have actually ridden rather than associated (as they can easily remove this association)
A new table tblHideHorse has been created with HorseID and ClientID along with HorseHideID (identity)
How can I combine this into the above query to produce the list minus the horses they select to not show?
I know it is something along the lines of
where clientid not in (select ClientID from tblHideHorse) but im afraid that is the limit of my knowledge.
Thanks in advance
MSSQL server 2014
SELECT
*
FROM
dbo.[qry_HorsesANDRidersAssociations]
Group By ClientID, HorseID, HorseName
UNION ALL
SELECT * FROM
dbo.[qry_HorsesRidersHaveCompeted]
Group BY ClientID, HorseID, HorseName
It produces a list of horses that a rider "wants" to have associated on their account and also a list of horses they have actually ridden.
I have been asked for a facility to hide horses from a riders account - which is more applicable to the ones they have actually ridden rather than associated (as they can easily remove this association)
A new table tblHideHorse has been created with HorseID and ClientID along with HorseHideID (identity)
How can I combine this into the above query to produce the list minus the horses they select to not show?
I know it is something along the lines of
where clientid not in (select ClientID from tblHideHorse) but im afraid that is the limit of my knowledge.
Thanks in advance
MSSQL server 2014
ASKER
Sorry must be being thick - pasted your code and it doesnt work.
Multi-part identifier r.ClientId could not be bound?
in the horsehide table it has to be an exact match for horse and rider together. Not just any horse or any rider existing in that table?
does that make sense?
Multi-part identifier r.ClientId could not be bound?
in the horsehide table it has to be an exact match for horse and rider together. Not just any horse or any rider existing in that table?
does that make sense?
can you provide few rows with column names of [qry_HorsesANDRidersAssoci ations] , dbo.[qry_HorsesRidersHaveC ompeted] and tblHideHorse so that we will give u exact output ?
I think at a minimum, this:
r.ClientID
should have been:
k.ClientID
»bp
r.ClientID
should have been:
k.ClientID
»bp
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you very much - I would never have gotten there on my own!
Welcome
glad to help as always :)
glad to help as always :)
Use NOT EXISTS instead of NOT IN. NOT IN does not consider NULLs and slow also.
Open in new window