» »

(Access) query po datumu

(Access) query po datumu

dusangonzo ::

V Accessu imam poizvedbo
Dobavitelji (ID, Datum vnosa, Naziv, Ocena, Rang)
Rang je skalkuliran na podlagi ocene. Sedaj pa bi rad imel report, ki bi mi dal ven dobavitelje glede na rang (A,B ali C), kar sicer imam, ampak je problem, če je nek isti dobavitelj ocenjen 2x ali večkrat. V tem primeru je namreč nek dobavitelj lahko pod več rangi. Moral bi torej nastaviti, da poizvedba v primeru da je notri en dobavitelj večkrat, vzame samo tisti zapis, ki je zadnji (ima zadnji datum vnosa).

Prosim za pomoč!
8rda+ rev 2.1 , XP 1662@2312(Thorton) , 1GB Geil Value PC3200 , Gf 6600GT

imagodei ::

Narediš subquery, ki ti sortira ustrezno po dobavitelju in datumu, tako da je prva vrstica v "začasni" tabeli ravno dobavitelj, ki ga iščeš, in sicer z aktualnim datumom. Glavni Select stavek pa napišeš kot

SELECT TOP 1
FROM
----SELECT ...
- Hoc est qui sumus -

dusangonzo ::

Hvala za pomoč,
ampak ker sem v SQLu bolj amater, bi te prosil če lahko malo bolj konkretno napišeš SQL stavek glede na polja, ki jih imam v poizvedbi.

Hvala
8rda+ rev 2.1 , XP 1662@2312(Thorton) , 1GB Geil Value PC3200 , Gf 6600GT

Sc0ut ::

Ful dobra knjiga.

Sposodi si jo v knjižnici in si poglej poglavje o sql-u. Kakšnih 40 strani in je vse ful dobro razloženo. Še elektronske primere dobiš zraven.

Saj bi ti pomagal, ampak sem to že malo pozabil.
1231 v3, Z97 A, 16GB ram 1600mhz, 3070 RTX, HX850

imagodei ::

Verjetno bi šlo tudi brez vgnezdenega querya takole:

SELECT TOP 1 *
FROM Dobavitelji
WHERE Naziv = "xyz"
ORDER BY [Datum vnosa] DESC
- Hoc est qui sumus -

dusangonzo ::

Hvala imagodei, ampak sedaj mi poizvedba vrne samo enega dobavitelja. Kar bi rabil pa je to: V tej poizvedbi je veliko dobaviteljev. Nekateri so ocenjeni večkrat. Rad bi, da mi poizvedba vrne zapise vseh tistih, ki so ocenjeni samo enkrat + tiste ki so večkrat, vendar samo najnovejšo oceno.
8rda+ rev 2.1 , XP 1662@2312(Thorton) , 1GB Geil Value PC3200 , Gf 6600GT

imagodei ::

Uredi po datumih, poglej si katerega izmed online SQL tutorialov. Morda ti bo pomagala ključna beseda DISTINCT. Bom kasneje malo pogledal še, zdajle nimam časa.
- Hoc est qui sumus -

dusangonzo ::

Je mogoče kdo že kaj pogruntal? Meni še ni ratalo...
8rda+ rev 2.1 , XP 1662@2312(Thorton) , 1GB Geil Value PC3200 , Gf 6600GT

dusangonzo ::

Evo, bom reskiral in še enkrat malo zatežil... Dejte mi pomagat no
8rda+ rev 2.1 , XP 1662@2312(Thorton) , 1GB Geil Value PC3200 , Gf 6600GT

imagodei ::

Bil sem na dopustu. Če je še aktualno, se lahko kaj dogovoriva. Bom pa rabil kak podatek več...
- Hoc est qui sumus -

r0bert0_ ::

V Accessu greš v meni view in vklopi totals....v qwery-u se pojavi nova vrstica in tam pri datumih izbereš max....ID, rang in ocena ne smejo biti izbrani. Shraniš query in narediš novega, vstaviš tabelo in ta novi query, narediš dve povezavi (datum in maxdatum, dobavitelj in dobavitelj), izbereš dobavitelja, rang, oceno....in to je to.

dusangonzo ::

Problem je žaj še vedno oz. spet aktualen, zato ponovno prosim za vašo pomoč. Poizvedba sedaj izgleda nekako takole. Dejansko sta notri samo dva stolpca (Ime stranke in Ocena). Potreboval pa bi formulo, ki bi izračunala povprečje za posamezno stranko (dodan tretji stolpec), saj je posamezna stranka lahko ocenjena večkrat, enkrat ali nikoli.

Ime stranke Ocena Avg
A 3 3,5
A 4
B 3 3
B 3
C 5 5
D 4 4
8rda+ rev 2.1 , XP 1662@2312(Thorton) , 1GB Geil Value PC3200 , Gf 6600GT

zigi ::

select imeStranke, avg(ocena * 1.0)
from tabela
group by imeStranke
order by imeStranke

dusangonzo ::

Trenutno imam v poizvedbi samo prva dva stolpca (Ime stranke in Ocena). Kako pa naj pridem do povprečne ocene za posamezno stranko?
8rda+ rev 2.1 , XP 1662@2312(Thorton) , 1GB Geil Value PC3200 , Gf 6600GT

imagodei ::

Kaj ti rešitev, ki jo je podal zigi ni všeč, ali ti ne dela, ali kaj tretjega?
- Hoc est qui sumus -

dusangonzo ::

Ne vem kaj pomeni ta (Ocena * 1.0). Kolikor vem bi moral najprej izračunati povprečno oceno za posamezno stranko?
8rda+ rev 2.1 , XP 1662@2312(Thorton) , 1GB Geil Value PC3200 , Gf 6600GT

imagodei ::

GROUP BY imeStranke

Dobil boš avg oceno glede na stranko. Sicer pa, zakaj ne prepišeš querija, ga poženeš in na roke preveriš za eno stranko? Ali pa vsaj približno oceniš, če je pravilno?

Če je preveč, da bi na roke delal, še vedno lahko napišeš
SELECT imeStranke, Ocena
FROM tabela
WHERE imeStranke="A"

nato skopiraš tabelo v Excel in na dnu narediš AVG formulo. To potem primerjaš z izpisom zigijevega queryja, pa boš vedel, ali dela ali ne...

Lahko se pa še 5 dni sprašuješ, a je predlagan query v redu, ali ni. Ne vem, jaz bi probal.
- Hoc est qui sumus -

dusangonzo ::

Query dela! Je bilo nekaj napak v mojem SQL stavku - amater. Hvala vsem za pomoč!
8rda+ rev 2.1 , XP 1662@2312(Thorton) , 1GB Geil Value PC3200 , Gf 6600GT

dusangonzo ::

Imam še eno vprašanje: Kako združiti podatke iz večih poizvedb v eno? Imam na primer več poizvedb, ki vse vsebujejo polja IME in DATUM in bi jih rad združil v eno poizvedbo, da bom podatke lahko analiziral.
8rda+ rev 2.1 , XP 1662@2312(Thorton) , 1GB Geil Value PC3200 , Gf 6600GT

imagodei ::

Google: SQL tutorial

Sem prepričan, da vrže ven več kot dovolj strani za začetek!

Drugače pa W3schools, na levi strani imaš meni in najdi SQL.
- Hoc est qui sumus -

dusangonzo ::

FULL JOIN ?
8rda+ rev 2.1 , XP 1662@2312(Thorton) , 1GB Geil Value PC3200 , Gf 6600GT

imagodei ::

Jah, ni tko simpl. Odvisno, kako hočeš združit, Preberi si en tutorial, no...
- Hoc est qui sumus -


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[SQL] Unikatni izpisi

Oddelek: Programiranje
212065 (1452) 111111111111
»

Baze ter relation med njimi

Oddelek: Programiranje
153069 (2630) Marat
»

[Oracle] Osnovno povpraševanje problem

Oddelek: Programiranje
151790 (1431) zdravc
»

SQL poizvedba

Oddelek: Programiranje
161412 (1174) xsenon
»

[MySql] obratno od DISTINCT

Oddelek: Programiranje
101388 (1206) frudi

Več podobnih tem