|
| Select Distinct fra to kollonner med betin~ Fra : Allan Gorm Pedersen |
Dato : 18-08-09 10:03 |
|
Problem med at hente data.
Nummer Variant
100
100 ah
100 bw
101
101
102
102 a
102 b
102 b
102 c
102 c
102 d
102 da
103 ab
103 ac
Ovenstående data sorteret for overskuelighedens skyld.
Det er mit ønske at finde antallet af forskellige data fra og med
102b
Hvis jeg bruger denne SQL får jeg af gode grunde ikke 103ab og
103ac med da hverken ab eller ac er større end b!
Mit SQL:
strSQL = "Select Distinct Nummer, Variant From salgsliste Where
Nummer >= 102 And Variant >= 'b' "
Men hvad gør jeg så?
Håber der er en der ude, som kan hjælpe mig.
Med venlig hilsen
Allan Gorm Pedersen
www.laurbjerg.dk
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Ukendt (18-08-2009)
| Kommentar Fra : Ukendt |
Dato : 18-08-09 10:38 |
|
"Allan Gorm Pedersen" <allan@laurbjerg.dk> skrev
> Men hvad gør jeg så?
> Håber der er en der ude, som kan hjælpe mig.
Prøv denne
SELECT salgsliste.nummer, salgsliste.variant, [nummer] & [variant] AS
sammen
FROM salgsliste
WHERE ((([nummer] & [variant])>='102b'));
Distinct hvis du kan skal have værdien én gang...
Bjarne
| |
Allan Gorm Pedersen (18-08-2009)
| Kommentar Fra : Allan Gorm Pedersen |
Dato : 18-08-09 21:17 |
|
bsn wrote in dk.edb.internet.webdesign.serverside.asp:
> "Allan Gorm Pedersen" <allan@laurbjerg.dk> skrev
> > Men hvad gør jeg så?
> > Håber der er en der ude, som kan hjælpe mig.
>
> Prøv denne
>
> SELECT salgsliste.nummer, salgsliste.variant, [nummer] & [variant] AS
> sammen
> FROM salgsliste
> WHERE ((([nummer] & [variant])>='102b'));
>
> Distinct hvis du kan skal have værdien én gang...
>
> Bjarne
>
>
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Allan Gorm Pedersen (18-08-2009)
| Kommentar Fra : Allan Gorm Pedersen |
Dato : 18-08-09 21:42 |
|
> Prøv denne
>
> SELECT salgsliste.nummer, salgsliste.variant, [nummer] & [variant] AS
> sammen
> FROM salgsliste
> WHERE ((([nummer] & [variant])>='102b'));
>
> Distinct hvis du kan skal have værdien én gang...
>
> Bjarne
>
Hej Bjarne
Tak for din interesse for at løse mit lille problem.
Ovenstående har jeg fået til at køre fint, men desværre ikke helt optimalt
- øv.
Det anførte datasæt er et minimeret udsnit af databasen.
Når "nummer" er 1010 udskrives det i før 102.
I øvrigt bruger jeg Distinct i SQL og efterfølgende Getrows for at
udskrive data. Så Distinct bruger jeg ikke kun for at lave en
sammentælling.
Håber det giver lidt mening.
Ellers vil jeg prøve at uddybe hvis du har spørgsmål
Se evt. også indllæg fra Stig herunder.
Med venlig hilsen
ALLAN GORM PEDERSEN
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Stig Johansen (18-08-2009)
| Kommentar Fra : Stig Johansen |
Dato : 18-08-09 13:52 |
|
Allan Gorm Pedersen wrote:
> Det er mit ønske at finde antallet af forskellige data fra og med
> 102b
opfattelse af data er ikke altid den samme set fra en computers synsvinkel
som mennesker.
> Hvis jeg bruger denne SQL får jeg af gode grunde ikke 103ab og
> 103ac med da hverken ab eller ac er større end b!
Det er korrekt.
> Mit SQL:
> strSQL = "Select Distinct Nummer, Variant From salgsliste Where
> Nummer >= 102 And Variant >= 'b' "
>
> Men hvad gør jeg så?
Nu skriver du ikke så meget om hvad hensigten er, bortset fra, jeg godt kan
se du mener 103xx er 'større' end 102xx
Hvis det er en varenummerserie, så lav det som compound items, hvor der er
eet felt i stedet for 2.
Hvad skal der f.eks. ske med nummer=104 og 'variant' = a ?
Ellers prøv noget med:
SELECT Nummer, Variant From salgsliste Where Nummer = 102 and Variant >= 'b'
OR Nummer > 102
Jeg går ud fra at 102 og 'b' er parametre/dynamisk, så dem kan du indsætte i
stedet.
--
Med venlig hilsen
Stig Johansen
| |
Allan Gorm Pedersen (18-08-2009)
| Kommentar Fra : Allan Gorm Pedersen |
Dato : 18-08-09 21:35 |
|
> opfattelse af data er ikke altid den samme set fra en computers synsvinkel
> som mennesker.
Hej Stig
Tak for din hjælp og interesse for at løse mit problem.
Desværre vil det have for store konsekvenser at ændre i databasen nu.
Derfor leder jeg efter en løsning ud fra det oplyste forhold.
Som du er inde på stemmer computerens og meneskets logik ikke overens.
Bjarnes forslag, får jeg til at køre fint, men desværre går det ud over den
numeriske rækkefølge.
Som relation til det anførte datasæt, som kun er et minimeret eksempel, vil
1010 komme før 102
Det eksempel du anfører hjælper mig ikke.
Bjarnes eksempel er tæt på, men det er vigtigt at den numeriske rækkeølge
overholdes.
Jeg bruger Distinct i min SQL for efterfølgende at bruge getrows for at
udskrive posteringerne.
Håber du kan hjælpe mig over denne vanskelige opgave.
Med venlig hilsen
ALLAN GORM PEDERSEN
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Stig Johansen (19-08-2009)
| Kommentar Fra : Stig Johansen |
Dato : 19-08-09 02:17 |
|
Allan Gorm Pedersen wrote:
> Som du er inde på stemmer computerens og meneskets logik ikke overens.
> Bjarnes forslag, får jeg til at køre fint, men desværre går det ud over
> den numeriske rækkefølge.
>
> Som relation til det anførte datasæt, som kun er et minimeret eksempel,
> vil 1010 komme før 102
>
> Det eksempel du anfører hjælper mig ikke.
Hvis nummer er et tal, som du indikerer, så kommer 102 før 1010.
> Jeg bruger Distinct i min SQL for efterfølgende at bruge getrows for at
> udskrive posteringerne.
Jeg er ikke sikker på jeg forstår denne her.
DISTINCT benyttes til at undertrykke dubletter.
Hvis det er distinct og rækkefølge, der driller dig, så prøv med:
SELECT DISTINCT Nummer, Variant
FROM salgsliste
WHERE Nummer = 102 and Variant >= 'b' OR Nummer > 102
ORDER BY Nummer,Variant
--
Med venlig hilsen
Stig Johansen
| |
Allan Gorm Pedersen (19-08-2009)
| Kommentar Fra : Allan Gorm Pedersen |
Dato : 19-08-09 19:29 |
|
>
> Hvis det er distinct og rækkefølge, der driller dig, så prøv med:
> SELECT DISTINCT Nummer, Variant
> FROM salgsliste
> WHERE Nummer = 102 and Variant >= 'b' OR Nummer > 102
> ORDER BY Nummer,Variant
Hej Stig
Tak for hjælpen
Ovenstående hjalp mine tanker i den rigtige retning, og har løst gården
Med venlig hilsen
ALLAN GORM PEDERSEN
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Ukendt (20-08-2009)
| Kommentar Fra : Ukendt |
Dato : 20-08-09 07:07 |
|
"Allan Gorm Pedersen" <allan@laurbjerg.dk> skrev
>>
>> Hvis det er distinct og rækkefølge, der driller dig, så prøv med:
>> SELECT DISTINCT Nummer, Variant
>> FROM salgsliste
>> WHERE Nummer = 102 and Variant >= 'b' OR Nummer > 102
>> ORDER BY Nummer,Variant
>
> Hej Stig
>
> Tak for hjælpen
> Ovenstående hjalp mine tanker i den rigtige retning, og har løst gården.
Hvad blev din løsning så...???
Bjarne
| |
|
|