/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
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



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste