---
title: "3till1 + count?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/93227-3till1-count"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Palle"
published: "2003-12-22T11:33:07.000Z"
updated: "2003-12-23T10:38:03.000Z"
replies: 11
views: 348
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/93227-3till1-count"
---

# 3till1 + count?

## #1 — Palle, 2003-12-22T11:33Z

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? :)

Permalänk: https://www.webforum.nu/p/93227

## #2 — LarsG, 2003-12-22T12:52Z

```
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
```

Permalänk: https://www.webforum.nu/p/1235990

## #3 — Palle, 2003-12-22T12:58Z

Nja, det ville sig inte riktigt.. 

> \[Microsoft\]\[ODBC SQL Server Driver\]\[SQL Server\]Incorrect syntax near the keyword 'and'.

Permalänk: https://www.webforum.nu/p/1235993

## #4 — LarsG, 2003-12-22T13:04Z

```
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.

Permalänk: https://www.webforum.nu/p/1235996

## #5 — Palle, 2003-12-22T13:17Z

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'.

Permalänk: https://www.webforum.nu/p/1236001

## #6 — LarsG, 2003-12-22T13:24Z

```
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.

Permalänk: https://www.webforum.nu/p/1236008

## #7 — Palle, 2003-12-22T13:29Z

Tyvärr.. fortfarande samma. 

> \[Microsoft\]\[ODBC SQL Server Driver\]\[SQL Server\]Invalid column name 'JE_candidate_profile_id'.

Permalänk: https://www.webforum.nu/p/1236011

## #8 — Palle, 2003-12-22T13:34Z

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]
```

Permalänk: https://www.webforum.nu/p/1236014

## #9 — Palle, 2003-12-22T13:44Z

..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?

Permalänk: https://www.webforum.nu/p/1236016

## #10 — LarsG, 2003-12-22T17:57Z

> 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.

Permalänk: https://www.webforum.nu/p/1236097

## #11 — Palle, 2003-12-23T07:33Z

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. :)

Permalänk: https://www.webforum.nu/p/1236330

## #12 — Palle, 2003-12-23T10:38Z

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]
```

Permalänk: https://www.webforum.nu/p/1236396

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/93227-3till1-count
