PalleMedlem sedan apr. 20002 716 inlägg
Hej,
Gah, det står still i huvvet och jag vägrar gå den långa vägen runt. ;)
Behöver slå ihop dessa till en sql-sats om det går:
[red](1) sql = "SELECT [/red]JE_candidate_cv_id[red] FROM JE_candidate_cv_wish_cathegory WHERE JE_cv_cathegory_id = "& [i]intCategoryID[/i]
(2) sql = "SELECT [blue]JE_candidate_profile_id[/blue] FROM JE_candidate_cv WHERE JE_candidate_cv_id = "& [/red]JE_candidate_cv_id[red]
(3) sql = "SELECT COUNT(*) FROM JE_candidate_profile WHERE JE_candidate_profile_id = "& [blue]JE_candidate_profile_id[/blue] &" AND JE_candidate_profile_trr = 1"[/red]
Det som ska hämtas i slutändan är ett tal, antal kandidater, i en sökfunktion.
intCategoryID är ett tal som användaren väljer i en drop-meny.
Jag har försökt färga koden här ovan så ni kan se hur relationerna hör samman.
(1) hämtar x antal id-nummer som sedan används i (2) för att hämta kandidaternas id.
(3) sedan räknar samman de kandidater som följt med genom (1) och (2).
Några tips eller idéer? :)
LarsGMedlem sedan dec. 200012 465 inlägg
select JE_candidate_profile_id , count(*)
FROM JE_candidate_cv cv join JE_candidate_profile cp
on cv.JE_candidate_profile_id = cp.JE_candidate_profile_id
where JE_candidate_profile_trr
and JE_candidate_cv_id in
( select JE_candidate_cv_id
FROM JE_candidate_cv_wish_cathegory
WHERE JE_cv_cathegory_id = <intCategoryID> )
group by JE_candidate_profile_id
PalleMedlem sedan apr. 20002 716 inlägg
Nja, det ville sig inte riktigt..
[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'and'.
LarsGMedlem sedan dec. 200012 465 inlägg
select JE_candidate_profile_id , count(*)
FROM JE_candidate_cv cv join JE_candidate_profile cp
on cv.JE_candidate_profile_id = cp.JE_candidate_profile_id
where JE_candidate_profile_trr [b] = 1 [/b]
and JE_candidate_cv_id in
( select JE_candidate_cv_id
FROM JE_candidate_cv_wish_cathegory
WHERE JE_cv_cathegory_id = <intCategoryID> )
group by JE_candidate_profile_id
Jag glömde det när jag klistrade ihop.
PalleMedlem sedan apr. 20002 716 inlägg
Hmm, det borde jag ju sett själv. :r
Tyvärr vill det sig inte riktigt nu heller och jag har lite svårt med dessa avancerade satserna..
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'JE_candidate_profile_id'.
LarsGMedlem sedan dec. 200012 465 inlägg
select cv.JE_candidate_profile_id , count(*)
FROM JE_candidate_cv cv join JE_candidate_profile cp
on cv.JE_candidate_profile_id = cp.JE_candidate_profile_id
where JE_candidate_profile_trr = 1
and JE_candidate_cv_id in
( select JE_candidate_cv_id
FROM JE_candidate_cv_wish_cathegory
WHERE JE_cv_cathegory_id = <intCategoryID> )
group by cv.JE_candidate_profile_id
Eftersom kolumnen finns med i båda tabellerna så måste man kvalificera namnet.
PalleMedlem sedan apr. 20002 716 inlägg
Tyvärr.. fortfarande samma.
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'JE_candidate_profile_id'.
PalleMedlem sedan apr. 20002 716 inlägg
Nu så, nu fick jag igång den.. :)
Tackar så mycket!
[red]SELECT cp.JE_Candidate_profile_id, COUNT(*) AS intCnt
FROM JE_candidate_cv cv INNER JOIN
JE_Candidate_profile cp ON cv.JE_candidate_cv_candidate_profile_id = cp.JE_Candidate_profile_id
WHERE (cp.JE_Candidate_profile_trr = 1) AND (cv.JE_candidate_cv_id IN
(SELECT JE_candidate_cv_id
FROM JE_candidate_cv_wish_cathegory
WHERE JE_cv_cathegory_id = <intCategoryID>))
GROUP BY cp.JE_Candidate_profile_id[/red]
PalleMedlem sedan apr. 20002 716 inlägg
..trodde jag. ;)
Den returnerar två poster istället för count-värdet, som i detta fall blev 2, jag vill med hjälp av intCnt skriva ut antalet.
Går detta eller måste jag loopa igenom recordsettet för att få ut, 2 i detta fall, mitt count-värde?
LarsGMedlem sedan dec. 200012 465 inlägg
Den returnerar två poster istället för count-värdet, som i detta fall blev 2, jag vill med hjälp av intCnt skriva ut antalet.
Jag förstår inte vad du menar med detta, i synnerhet
som i detta fall blev 2
Jag trodde att du vill ha alla candidater som tillhör en viss kategori och för varje kandidat vill du ha antalet förekomster för denne kandidat i tabellen JE_Candidate_profile.
Frågan returnerar en post med två kolumner för varje kandidat.
PalleMedlem sedan apr. 20002 716 inlägg
Det jag vill göra är följande:
Jag försöker skapa en sökfunktion där rekryteringsföretag (RF) söker i den befintliga databasen efter lämpliga kandidater baserat på Yrkeskategori, Område och Stad. Just denna sql-sats som diskuterats här ovan gäller för yrkeskategori och detta val gör (RF) i en dropmeny.
Databasen består av en mängd tabeller, i detta fall används följande tabeller:
- JE_candidate_cv_wish_cathegory
Här finns de olika kategorierna (JE_candidate_cv_wish_cathegory), som kandidaten valt samt kandidatens unika cv-id. (JE_candidate_cv_id)
- JE_candidate_cv
Här finns kandidatens unika cv-id (JE_candidate_cv_id) samt kandidatens unika profil-id. (JE_candidate_profile_id)
- JE_candidate_profile
Här finns kandidatens unika profil-id (JE_candidate_profile_id) samt om kandidaten tillhör en viss kategori eller inte. (JE_candidate_profile_trr)
Det jag vill göra är alltså att kolla hur många kandidater det finns i databasen som stämmer överens med sökkriterian och sedan lista antalet, ex. 12 st.
Hoppas du förstod. :)
PalleMedlem sedan apr. 20002 716 inlägg
Nu så, nu fungerar det. :bire
[red]SELECT COUNT(*) AS intCnt
FROM JE_candidate_cv_wish_cathegory cw INNER JOIN
JE_candidate_cv cv ON cw.JE_candidate_cv_id = cv.JE_candidate_cv_id INNER JOIN
JE_Candidate_profile cp ON cv.JE_candidate_cv_candidate_profile_id = cp.JE_Candidate_profile_id
WHERE (cw.JE_cv_cathegory_id = <intCategoryID>) AND (cp.JE_Candidate_profile_trr = 1)[/red]