webForumDet fria alternativet

Söka från två ställen

Databaser & SQL

26 svar · 711 visningar · startad av Lorelie · sida 2 av 2

Frågan, av Lorelie

Jag har en databas där man kan söka efter stamboksnummer, eller rättare sagt få upp en lista i nummerordning. En del hästar är exporterade från det landet, och då kommer inte de upp i sitt gamla lands lista som därmed inte blir komplett. Har två olika stamboksnummer i databasen, den nya med tillhörande stamboksbetäckning (aktuell) och den gamla med dito (förra). Kan man få med de gamla i en list

Läs frågan i sin helhet →
Medlem sedan juni 2005264 inlägg
#21

Peter S skrev:

Är stamboksnumren lagrade som strängar? Om dessa alltid är numeriska bör du ändra kolumndefinitionerna så att de lagras som tal.

Oj, det var ju det jag skulle ändra, mitt fel! Borde tänkt på det innan (glömt sätta den nya kollumnen utlstb som int) Nu fungerar det =D

Medlem sedan dec. 20025 483 inlägg
#22

Annars är det möjligt att göra så här

coalesce(...) * 1

Men det är som sagt bättre att göra det som är mest rätt. :)

Medlem sedan juni 2005264 inlägg
#23

Nu är jag ju i fel forum iof, men...

Är det jättesvårt att få in det gamla nummret i listan som kommer upp på eftersökta hästar? Dvs "Roundstone Chief RC 1 (IRE 151)" (nu står det bara RC 1 mellan IRE 150 och 152)

Det borde väl bli ungefär

if utlstb is not null then <namn> (<utlstb> <utlstbnr>)
else if
<namn>

eller?

Medlem sedan dec. 20025 483 inlägg
#24

Du kan åstadkomma det direkt i SQL:en

select concat(namn,case when utlstb is not null then concat(' (',utlstb,' ',utlstbnr,')') else '' end) as namn
Medlem sedan juni 2005264 inlägg
#25

Peter S skrev:

Du kan åstadkomma det direkt i SQL:en

select concat(namn,case when utlstb is not null then concat(' (',utlstb,' ',utlstbnr,')') else '' end) as namn

:o Fungerade ju direkt :e

Tackar så jättemycket för all hjälp! :e

SQL = _
"select concat(namn,case when utlstb is not null then concat(' (',utlstb,' ',utlstbnr,')') else '' end) as namn" & _
" , hast_id" & _
" , ras" &_
" , stamboks_nr" &_
" , bild_url" & _
" from hast" &_
" where 'IRE'" &_
" in (ras,utlstb)" &_
" and kon = '" & SafeSQL(Request.Form("kon")) & "'" &_
" and namn like '" & SafeSQL(Request.Form("hast")) & "%'" &_
" and stamboks_nr is not null " &_
" and namn " &_
"not in ('e','u',' ') " &_
"order" &_
" by coalesce(utlstbnr,stamboks_nr)"

rs.Open SQL, MinCon
%>

Nu till en fråga till... Kan jag få den att alltid sortera efter IRE-nummret oavsett på vilket ställe den står? För nu sorterar den in nummren på fel ställe om det står något annat än IRE i gamla nummret, tex NPS som har lååånga nummer, det gör att en häst som har ett gammalt NPS-nummer hamnar på platsen för det nummret i IRE-listan, men jag vill alltid ha den efter IRE oavsett om den är IRE nu eller har varit förut

Medlem sedan dec. 20025 483 inlägg
#26

Glöm inte acceptera som slutgiltigt svar (om du vill kan du sammanfatta lösningen i ett nytt inlägg och markera det svaret).

Medlem sedan juni 2005264 inlägg
#27

knuffar upp följande fråga:

Lorelie skrev:

Nu till en fråga till... Kan jag få den att alltid sortera efter IRE-nummret oavsett på vilket ställe den står? För nu sorterar den in nummren på fel ställe om det står något annat än IRE i gamla nummret, tex NPS som har lååånga nummer, det gör att en häst som har ett gammalt NPS-nummer hamnar på platsen för det nummret i IRE-listan, men jag vill alltid ha den efter IRE oavsett om den är IRE nu eller har varit förut

255 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)