Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako da ova procedura proradi kako treba ;)

[es] :: MS SQL :: Kako da ova procedura proradi kako treba ;)

[ Pregleda: 3074 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

01011011

Član broj: 561
Poruke: 2341
204.167.145.*



+2 Profil

icon Kako da ova procedura proradi kako treba ;)19.01.2006. u 22:22 - pre 222 meseci
Code:

CREATE PROCEDURE viewJobsa1 AS
SELECT distinct 
a.InternalNumber,
 a.JobID,
 a. JobTitle,
a.PostedDate,
b.Category,
a.State,
COUNT( c.ApplyJobNumber) as jobHits,
SUM(d.Hits) as HitsNum

FROM 

    Jobs a left outer join Category b on a.CategoryID = b.CategoryID
    left outer join ApplyJobs c on c.ApplyJobNumber = a.InternalNumber
    left outer join JobImpression d on d.InternalNumber = a.InternalNumber

WHERE
b.clinical = '1' AND a.clinical='1'

GROUP BY a.InternalNumber,  a.JobID,  a. JobTitle, a.PostedDate, b.Category, a.State, c.ApplyJobNumber, d.Hits
GO



I problem je sledeci.

Treba da iz table APPLYJOBS izvucem i count-ujem broj applikacija i iz ove druge table ta izvucen i saberem broj HIT-hitova, ali ne radi.. :(

Gdje grijesim da li neko zna..
 
Odgovor na temu

ProkDu

Član broj: 54451
Poruke: 10
195.252.99.*



Profil

icon Re: Kako da ova procedura proradi kako treba ;)19.01.2006. u 23:31 - pre 222 meseci
Koju ti gresku izbacuje?
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
204.167.145.*



+2 Profil

icon Re: Kako da ova procedura proradi kako treba ;)20.01.2006. u 15:23 - pre 222 meseci
Nema greske jednostavno ne izbacuje prave rezultate...
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Kako da ova procedura proradi kako treba ;)20.01.2006. u 15:27 - pre 222 meseci
Opiši tabele, kao i rezultat koji očekuješ.
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
204.167.145.*



+2 Profil

icon Re: Kako da ova procedura proradi kako treba ;)20.01.2006. u 18:53 - pre 222 meseci
Evo ovako,

znaci imam tabelu jobs koja sadrzi "internalNumber" koji je jedinstven - unique.

Prikazujem sve informacije od poslu na viewJobs.aspx, znaci sve se prikaziva o poslu. Sa tim informacijama potrebno je da prikazem i sledece informacije:

Koliko puta je bio pregledan ovaj posao?

i

Koliko puta je neko aplicirao za ovaj posao?

Te informacije se nalaze u tabelama JobImpression za pregledanje, i ApplyJobs za koliko puta je bilo aplicirano za ovaj posao.

Job impression ima polja sledeca:

ID
InternalNumer
Hits...

i tako dalje...
u ovoj tabli svaki put kad neko posjeti stranicu za neki posao, internalNumber tog posla se sacuva u bazi podataka i polje hits postaje 1

sada da bi dobio sve preglede uradio sam sledece, povezao sam tabele i uradio sabiranje pregleda posla SUM(d.Hits) as HitsNum ali ovo izgelda da ne radi jer kad pregledam u bazi podataka totalno druge rezultate dobijam.


Takodje za da prebrojim koliko je aplicirano poslova je malko drugacije jer nema broja 1 za svaki posao koji je apliciran nego se samo prikaze koji je posao apliciran znaci InternalNumber posla koji je apliciran. Tako da ne mogu da koristim sum, nego count COUNT( c.ApplyJobNumber) as jobHits sto je ustvari isti k****.. E sada kada uradim ovo trebao bih d apovezem tako ove tabele sa jointima da dobijem ove rezultate, dok ih sad trenutno ne dobijam :( Nisam bas najbolji sa outer i inner vezama, pa sam zato postavio pitanje.


Inace ovo za kompaniju nisam ja radio normalizaciju ove baze podataka tako da nije moja greska sto je ovo jako slabo izdizajnirano...


Hvala Mnogo
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
204.167.145.*



+2 Profil

icon Re: Kako da ova procedura proradi kako treba ;)20.01.2006. u 20:44 - pre 222 meseci
Evo malko da pripomognem...

Kada po jedan samo hocu da izvadim iz baze podataka ili hitove ili aplikacije sve radi kako treba... a kada hocu oboje onda ne radi :(

evo jedan primjer..

Code:

CREATE PROCEDURE viewJobsa1 AS
SELECT distinct 
a.InternalNumber,
c.ApplyJobNumber,
 a.JobID,
 a. JobTitle,
a.PostedDate,
b.Category,
a.State,
COUNT(c.ApplyJobNumber) as jobHits

FROM 

    Jobs a left outer join ApplyJobs c on a.InternalNumber = c.ApplyJobNumber 
    
    left outer join Category b on a.CategoryID = b.CategoryID
WHERE
b.clinical = '1' and a.clinical ='1'

GROUP BY a.InternalNumber,  a.JobID,  a. JobTitle, a.PostedDate, b.Category, a.State, c.ApplyJobNumber
GO


I TO MI DAJE REZULTATE ONO ISLPRAVNE ZA APLIKACIJE...

ONDA ZA HITS...

Code:
SELECT DISTINCT a.InternalNumber, a.JobID, a.JobTitle, a.PostedDate, b.Category, a.State, SUM(d.Hits) AS HitsNum
FROM         Jobs a LEFT OUTER JOIN
                      Category b ON a.CategoryID = b.CategoryID LEFT OUTER JOIN
                      JobImpression d ON d.JobID = a.JobID
WHERE     (b.Clinical = '1')
GROUP BY a.InternalNumber, a.JobID, a.JobTitle, a.PostedDate, b.Category, a.State, d.Hits


I TO MI DAJE I ZA HITS SVE POTREBNO, ALI KAD HOCU I DA VIDIM I HITS I APLIKATIONS ONDA NESTO NE POVEZIVAM DOBRO...


Da li neko zna sta je proiblem?
 
Odgovor na temu

ProkDu

Član broj: 54451
Poruke: 10
195.252.99.*



Profil

icon Re: Kako da ova procedura proradi kako treba ;)21.01.2006. u 02:52 - pre 222 meseci
Stvarno sam pocetnik u SQL-u, tako da ne zamerite. Ali, da li bi se to resilo tako sto bi napravio VIEW, pa onda odatle pozvao rezultate?
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
204.167.145.*



+2 Profil

icon Re: Kako da ova procedura proradi kako treba ;)23.01.2006. u 15:23 - pre 222 meseci
Ja se taman ponadao da je neko odgovorio, kad ono ovo njesra, otvori novi topik jarane ...
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
204.167.145.*



+2 Profil

icon Re: Kako da ova procedura proradi kako treba ;)23.01.2006. u 18:11 - pre 222 meseci
Mozda koristeci UNION... Nemam blage, ispao sam iz ideja, da li neko moze da pomogne.
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Kako da ova procedura proradi kako treba ;)24.01.2006. u 13:52 - pre 222 meseci
Ak u ovo
Code:
SELECT distinct 
a.InternalNumber,
 a.JobID,
 a. JobTitle,
a.PostedDate,
b.Category,
a.State,
COUNT( c.ApplyJobNumber) as jobHits,
SUM(d.Hits) as HitsNum

FROM 

    Jobs a


umesto COUNT i SUM upotrebis subquerije, dobices rezultat. Nesto kao:

Code:

--- pretpostavka je da se tabele mogu vezati po polju JobID

SELECT 
   A.JobID 
   , Pregledano=(SELECT COUNT(*) FROM JobImpression  AS B WHERE                  A.JobID=B.JobID)
, Applied = (SELECT COUNT(*) FROM JobApply AS C WHERE A.JobID=C.JobID)

FROM Jobs AS A



Nemam sad vremena da idem u vise detalje, ako mozes da se strpis do iduce nedelje.

Druga varijanta jeste sa UNION. Prvo, u ona dva kverija koji ti daju dobre rezultate, dodas im po jedno polje TipTransakcije = 'Hits' i TipTransakcije = 'Application'. namestis da oba vracaju identican broj polja, sa istim imenom, da bi mogao da ih unionizujes. Q1 UNION Q2 moze da ti bude view, a moze i direktno. Onad od UNION kverija napravis cross-tab, gde su nazivi kolona Hits i Application a prikazani su brojevi koje si vec izracunao. Ako te ovo zbunjuje, molim te sacekaj do iduce nedelje pa cu ti objasniti detaljno.

I jos nesto, pre nego sto strpas sve u stored procedures, napravi views i vidi da ti sve proradi u views. Onda ce i procedura da proradi. Ovako je mnogo teze naci sta pravi problem.

:-)

[Ovu poruku je menjao Zidar dana 24.01.2006. u 15:01 GMT+1]
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
204.167.145.*



+2 Profil

icon Re: Kako da ova procedura proradi kako treba ;)24.01.2006. u 15:19 - pre 222 meseci
Hvala, probacu ove predloge, nazalost moram da zavrsim ovaj projekat do kraja ove nedelje inace sve ode u pm...
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
204.167.145.*



+2 Profil

icon Re: Kako da ova procedura proradi kako treba ;)27.01.2006. u 17:10 - pre 222 meseci
Hvala ti brate car si...

Vidis nikako nisam radio sa subprocedurama :) Veoma interesantno i korisno ;)


Code:

CREATE PROCEDURE viewJobs1 AS
SELECT distinct 
a.InternalNumber,
 a.JobID,
 a. JobTitle,
a.PostedDate,
b.Category,
a.State,
jobHits = ( select COUNT( ApplyJobNumber) from ApplyJobs c where c.ApplyJobNumber = a.InternalNumber),
HitsNum = (select SUM(d.Hits) from JobImpression d where d.InternalNumber = a.InternalNumber)  

FROM 

    Jobs a left outer join Category b on a.CategoryID = b.CategoryID

WHERE
b.clinical = '1' AND a.clinical='1'

GROUP BY a.InternalNumber,  a.JobID,  a. JobTitle, a.PostedDate, b.Category, a.State
GO


Hvala jos jednom
 
Odgovor na temu

ProkDu

Član broj: 54451
Poruke: 10
195.252.99.*



Profil

icon Re: Kako da ova procedura proradi kako treba ;)02.02.2006. u 15:47 - pre 221 meseci
Citat:
01011011: Ja se taman ponadao da je neko odgovorio, kad ono ovo njesra, otvori novi topik jarane ...


Tek sad videh ovo. Sramota. Kultura. Vaspitanje.

 
Odgovor na temu

[es] :: MS SQL :: Kako da ova procedura proradi kako treba ;)

[ Pregleda: 3074 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.