# sql-code  für suche in tabelle nach höchster transaktionsnr



## matze23 (25. Okt 2007)

hallo 
ich habe eine Tabelle, in der Tansaktionen auf ein objekt abgespeichert werden.
Jetzt suche ich ein objekt, auf das bsw. Transaktion mit nr 2  schon gelaufen ist aber transaktion 3 noch nicht ..

objectnr   TAnr

2            2
2            3
3            2
4             2
5             2
5             3

also gesucht wären z.B  objekt 3 und 4 


Hört sich einfach an aber ich blicks irgendwie nicht.
Bin für jeden tipp dankbar. von mir aus auch in hibernate 
Habe Mysql


----------



## tuxedo (25. Okt 2007)

sowas?


```
SELECT objectnr FROM KeineAhnungWieDerTabellennameIst WHERE TAnr = 2
```


----------



## The_S (25. Okt 2007)

nein 

ich denke mal eher sowas:


```
select objectnr, sum(tanr)
from tabelle
where tanr=3 or tanr=2
group by objectnr 
having sum(tanr)=2
```


----------



## matze23 (25. Okt 2007)

danke für die hilfe 
aber damit würden die objekte, bei denen der TA mit der Nummer 3 auch schon gelaufen ist nicht ausgeschlossen 


id   I   Objektnr  I   TA nr 

1    I      2      I      2 
2    I       2      I     3
3    I       3      I     2 


also das objekt mit nummer 2 will ich eigentlich nicht 

sowas in der Art : 







SELECT t1.*   FROM 
Transaktion  t1 
left join Transaktion t2 
on t2.Objektid = t1.Objektid   AND  
  t1.TransaktionsTyp = 2   AND t2.TransaktionsTyp = 3  
where t2.Objektid   IS NULL AND  t1.Objektid  = 2 

aber das kommt mir irgendwie komliziert  (langsam) vor


----------



## The_S (25. Okt 2007)

Hast du meinen post gesehen?


----------



## matze23 (25. Okt 2007)

ahh  hobit, danke deines probier ich mal aus danke


----------



## tuxedo (25. Okt 2007)

Ah, zusammengezählt werden soll das auch... Okay....


----------



## The_S (25. Okt 2007)

alex0801 hat gesagt.:
			
		

> Ah, zusammengezählt werden soll das auch... Okay....



wieder nee :lol: . Er möchte alle objektnr haben, die als transID eine 2 aber keine 3 haben. objektnr sind nicht eindeutig in der Tabelle.


----------



## matze23 (25. Okt 2007)

hi Hobbit  
es funzt  :lol:  wie kommt man denn auf sowas lernt man das an der uni  ?
ist das state of the art ? 
also danke jedenfalls


----------



## tuxedo (25. Okt 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> wieder nee :lol: . Er möchte alle objektnr haben, die als transID eine 2 aber keine 3 haben. objektnr sind nicht eindeutig in der Tabelle.



Ähm, hatte dann nicht ein 


```
SELECT objectnr
FROM tabelle
WHERE tanr=2
GROUP BY objectnr
```

nicht auch gereicht? Wozu muss ich denn da die tanr Spalte zusammenaddieren ?!

- Alex


----------



## tuxedo (25. Okt 2007)

Halt, ich nehm alles zurück.. Stand aufm schlauf... Jetzt hab ich's geblickt...


----------



## The_S (25. Okt 2007)

@alex

nein, dann bekommst du ja auch die objektnr zurück, bei denen auch eine 3 eingetragen ist

@matze

studiert habe ich nicht, aber mit ein paar SQL Kenntnissen und ein bisschen nachdenken kommt man da schon drauf  .


----------



## Guest (25. Okt 2007)

jetzt brauch ich natürlich das objekt selber und nicht dieTA Nr :wink: 

also mach ich in etwa sowas : 

select * from objekt o 
left join transaktion t

on  t.tanr=3 or t.tanr=2 and  o.id  = t.objektnr
group by t.objectnr
having sum(t.tanr)=2


ziemlich langsam das ganze , 
zum glück hab ich nicht den datenbankdesign gemacht.  :cry:


----------

