[ steve585 @ 06.01.2008. 08:58 ] @
Imam sljedeci problem: Trebao bih da prebrojim fakture u tabeli koje u sebi imaju proizvod 1 i prozvod 2 i proizvod 3
Ovo je tabela:

Code:

Pr      Faktura
1    10
2    10
3    10
4    10
5    10
6    11
7    11
1    11
8    12
3    12
2    12
9    13
1    13
3    13
2    14
3    14
5    14
1    15
1    15
1    15


[ steve585 @ 06.01.2008. 09:12 ] @
Sa kasnjenjem sql za kreiranje tabele

Code:

CREATE TABLE `test` (
  `Proizvod` int(11) NOT NULL,
  `Faktura` varchar(20) NOT NULL
);

INSERT INTO `test` (`Proizvod`, `Faktura`) VALUES 
(1, '    10'),
(2, '    10'),
(3, '    10'),
(4, '    10'),
(5, '    10'),
(6, '    11'),
(7, '    11'),
(1, '    11'),
(8, '    12'),
(3, '    12'),
(2, '    12'),
(9, '    13'),
(1, '    13'),
(3, '    13'),
(2, '    14'),
(3, '    14'),
(5, '    14'),
(1, '    15'),
(1, '    15'),
(1, '    15'),
(1, '    10'),
(2, '    10'),
(3, '    10'),
(4, '    10'),
(5, '    10'),
(6, '    11'),
(7, '    11'),
(1, '    11'),
(8, '    12'),
(3, '    12'),
(2, '    12'),
(9, '    13'),
(1, '    13'),
(3, '    13'),
(2, '    14'),
(3, '    14'),
(5, '    14'),
(1, '    15'),
(1, '    15'),
(1, '    15');
[ jablan @ 06.01.2008. 09:36 ] @
http://www.w3schools.com/sql/func_count_distinct.asp
[ steve585 @ 06.01.2008. 09:59 ] @
Ok probao sam sa ovim upitom
Code:

select faktura, count(distinct Faktura) from Test where Proizvod in (1, 2, 3) group by Faktura;


i dobio ovaj rezultat:

Code:

Faktura     Broj
10          1
11          1
12          1
13          1
14          1
15          1


Ovo nije u redu zato sto dobijam vrijednosti za sve fakture. Jedino faktura 10 ima proizvod 1 i proizvod 2 i proizvod 3. Kako to izvuci?
[ jablan @ 06.01.2008. 10:31 ] @
Izvini, nisam dobro pročitao pitanje
Code:

select faktura
from test
where proizvod in (1, 2, 3)
group by faktura
having count(distinct(proizvod)) = 3
[ steve585 @ 06.01.2008. 10:33 ] @
Da to je to!

Hvala!