devotionMedlem sedan jan. 20013 582 inlägg Hej!
Hur gör jag för att visa alla poster där det finns andra som har samma taskNr :OO ?
Dvs om posten 1 har taskNr 100 ska den inte visas
Om däremot posterna 2, 3 och 4 har taskNr 200 ska de listas:
Id task taskNr
-----------------------------
2 Installation 200
3 Installation 200
4 Installation 200
-----------------------------
Anväder SQLExpress
Mvh
Henrik
PeddaMedlem sedan juni 20006 032 inlägg select * from tabellen where taskNr = 200
devotionMedlem sedan jan. 20013 582 inlägg
Pedda skrev:
select * from tabellen where taskNr = 200
:D
Jag kanske uttryckte mig otydligt... Den hade jag klarat själv ;)
Jag vill även visa:
Id task taskNr
-----------------------------
2 Installation 200
3 Installation 200
4 Installation 200
5 Koppling 300
6 Koppling 300
7 Renovering 400
8 Renovering 400
-----------------------------
Dvs jag vill visa de poster där det finns andra poster som har samma tasknr (flera poster med samma taskNr) Men inte de poster där det bara finns en post med samma taskNr...
Mvh
Henrik
@ndersMedlem sedan juni 200032 969 inlägg Om jag förstår rätt:
SELECT * FROM tbl WHERE tasknr IN
( SELECT tasknr FROM tbl
GROUP BY tasknr
HAVING COUNT(*) > 1 )
devotionMedlem sedan jan. 20013 582 inlägg
@nders skrev:
Om jag förstår rätt:
SELECT * FROM tbl WHERE tasknr IN
( SELECT tasknr FROM tbl
GROUP BY tasknr
HAVING COUNT(*) > 1 )
Klart du förstår rätt..... :)
Mvh
Henrik
devotionMedlem sedan jan. 20013 582 inlägg Hej! :)
Kan man utveckla den frågan lite...
Grunden som innnan, men:
jag vill visa de poster där det finns andra poster som har samma tasknr (flera poster med samma taskNr) Men inte de poster där det bara finns en post med samma taskNr. och inte de poster där inte status = 4
Dvs om jag får träff med ovanstående fråga vill jag inte visa de poster med samma taskNr som har olika status.
Blev det krångligt?
Mvh
Henrik
Peter SMedlem sedan dec. 20025 483 inlägg SELECT * FROM tbl t WHERE tasknr IN
( SELECT tasknr FROM tbl
GROUP BY tasknr
HAVING COUNT(*) > 1 )
AND
( select count(distinct status)
from tbl
where taskNr = t.taskNr ) = 1
?
devotionMedlem sedan jan. 20013 582 inlägg Hmm... Jag vet att det är svårt att förklara...
devotionMedlem sedan jan. 20013 582 inlägg Jag ska försöka göra en grafisk beskrivning!
Id task taskNr Status
---------------------------------------
2 Installation 200 4
3 Installation 200 4
4 Installation 200 4
5 Koppling 300 3
6 Koppling 300 4
7 Renovering 400 3
8 Renovering 400 3
9 Nybyggnad 500 4
10 Nybyggnad 500 4
-----------------------------
I ovanstående tabell skall följande poster visas:
2 Installation 200 4
3 Installation 200 4
4 Installation 200 4
9 Nybyggnad 500 4
10 Nybyggnad 500 4
Därför de är dubletter (samma taskNr) och de har endast statusen 4 (dvs det finns inga andra poster med samma taskNr som har någon annan status än 4)
Mvh
Henrik
emissionMedlem sedan dec. 19996 721 inlägg Lite snurrigt, men är det inte så enkelt som
SELECT * FROM tbl WHERE tasknr IN
( SELECT tasknr FROM tbl
GROUP BY tasknr
HAVING COUNT(*) > 1 )
AND tasknr NOT IN
( SELECT tasknr FROM tbl
WHERE status<>4)
Det finns ett antal syntaktiska varianter på denna SQL-sats, men principen kanske blir tydligast så här.
Peter SMedlem sedan dec. 20025 483 inlägg Enklast är väl att lägga till ett villkor i originalkoden
SELECT * FROM tbl WHERE tasknr IN
( SELECT tasknr FROM tbl
where status = 4
GROUP BY tasknr
HAVING COUNT(*) > 1 )
devotionMedlem sedan jan. 20013 582 inlägg
Peter S skrev:
Enklast är väl att lägga till ett villkor i originalkoden
SELECT * FROM tbl WHERE tasknr IN
( SELECT tasknr FROM tbl
where status = 4
GROUP BY tasknr
HAVING COUNT(*) > 1 )
:h
Hmmm, det kanske det är! Testade emissions förslag, och det verkar fungera.. Ska testa ditt oxå Peter S! :)
Mvh
Henrik
Peter SMedlem sedan dec. 20025 483 inlägg Nevermind... Jag konstaterar att jag missuppfattat uppgiften.
devotionMedlem sedan jan. 20013 582 inlägg
Peter S skrev:
Nevermind... Jag konstaterar att jag missuppfattat uppgiften.
Aha! Jag kör på emissions förslag då... :moose