Vill få ut alla unika org nummrena och pressentera dem i en select box med respektive företagsnamn men denna kod ger ett felaktigt resultat, hur gör jag? Jag skulle nog ha gjort följande: DISTINCT gäller alla fält så din fråga kommer att lista samma orgnummer flera gånger om det är olika företagsnamn. Men om jag endast vill ha typ: Då blir det väl nåt i stil med TOP 1 hmm, hur då? <b>om det finns flera org nr med olika företagsnamn, kan man inte på nått sett göra så att den hämtar alla unika orgnr och bara det första företagsnamnet efter bokstavsordning.</b> konstigt, denna kod gör bara att listan blir tom och all HTML som ligger nedanför listan försviner :S... Jag misstänker att du vill göra så här: Invalid use of group function Ska det vara i annan ordning då, jag kommer aldrig ihåg vart GROUP BY ska vara, testa: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY cu_orgnr' at line 1 SELECT DISTINCT cu_orgnr, cu_name FROM customer LIMIT 1 hmm, " Object doesn't support this property or method: 'EOF' " svarar den nu... Du borde skrivit vilken databas det gällde från början... Om det är MySQL har jag för mig att det är såhär: sorry, som sagt jag glömde att ange att det va en mySQL databas jag jobbar mot. queryCustomer = "SELECT DISTINCT cu_orgnr, cu_name FROM customer ORDER BY cu_name" Tack! nu fick jag det att funger! Du får nog använda dej av lite strängfunktioner då: http://dev.mysql.com/doc/refman/4.1/en/string-functions.htmlHämta alla unika org nummer med respektive företagsnamn, min kod ger fel resulta
<select class="select_normal">
<%
Set rstRecSet = Server.CreateObject("ADODB.Recordset")
queryCustomer = "SELECT DISTINCT cu_orgnr, cu_name FROM customer ORDER BY cu_name"
Set rstRecSet = objCon.Execute(queryCustomer)
Do While Not rstRecSet.EOF
%>
<option value="<%= rstRecSet("cu_orgnr")%>"><%= rstRecSet("cu_name")%></option>
<%
rstRecSet.MoveNext
Loop
rstRecSet.Close
Set rstRecSet = Nothing
%>
</select>Sv: Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
<%
Call main()
Private Sub main()
Call Fill_SelectBox()
End Sub
Private Sub DB_Connect()
Set oCon = Server.CreateObject("ADODB.Connection")
oCon.ConnectionString = "Din anslutningsträng till databasen"
oCon.Open
End Sub
Private Sub Fill_SelectBox()
Dim sSQL
sSQL = "SELECT DISTINCT cu_orgnr, cu_name FROM customer ORDER BY cu_name"
Call DB_Connect()
Set rstRecSet= Server.CreateObject("ADODB.Recordset")
rstRecSet.Open sSQL, oCon, adLockReadOnly, adCmdText
End Sub
%>
.
.
.
.
Nere i din html och i din selectbox...
<select class="select_normal">
<%
Do While Not rstRecSet.EOF
%>
<option value="<%= rstRecSet("cu_orgnr")%>"><%= rstRecSet("cu_name")%></option>
<%
rstRecSet.MoveNext
Loop
rstRecSet.Close()
Set rstRecSet = Nothing
oCon.Close()
Set oCon = Nothing
%>
</select>
T ex...Sv: Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
t.ex.
555555-5555 "Företaget avdelning 1"
555555-5555 "Företaget avdelning 2"
Hur skall databasen veta vilken av dem du vill ha?Sv:Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
queryCustomer = "SELECT DISTINCT cu_orgnr, cu_name FROM customer ORDER BY cu_name"
om det finns flera org nr med olika företagsnamn, kan man inte på nått sett göra så att den hämtar alla unika orgnr och bara det första företagsnamnet efter bokstavsordning.
Så om
555555-5555 "Företaget avdelning 1"
555555-5555 "Företaget avdelning 2"
så visas bara
555555-5555 "Företaget avdelning 1"Sv: Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
<code>
SELECT DISTINCT c1.cu_orgnr, c1.cu_name
FROM customer c1
WHERE c1.cu_name = (SELECT Min(c2.cu_name) FROM customer c2 WHERE c1.cu_orgnr = c2.cu_orgnr)
</code>
TOP 1 kanske är snabbareSv:Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
Sv: Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
Självklart går det! Borde bli såhär:
queryCustomer = "SELECT cu_orgnr, MIN(cu_name) AS forsta_cu_name FROM customer GROUP BY cu_orgnr ORDER BY MIN(cu_name)"
/JohanSv:Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
<select class="select_normal">
<%
Set rstRecSet = Server.CreateObject("ADODB.Recordset")
queryCustomer = "SELECT cu_orgnr, MIN(cu_name) AS forsta_cu_name FROM customer GROUP BY cu_orgnr ORDER BY MIN(cu_name)"
Set rstRecSet = objCon.Execute(queryCustomer)
Do While Not rstRecSet.EOF
%>
<option value="<%= rstRecSet("cu_orgnr")%>"><%= rstRecSet("forsta_cu_name")%></option>
<%
rstRecSet.MoveNext
Loop
rstRecSet.Close
Set rstRecSet = Nothing
%>
</select>Sv: Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
<%
Set rstRecSet = Server.CreateObject("ADODB.Recordset")
queryCustomer = "SELECT cu_orgnr, MIN(cu_name) AS forsta_cu_name FROM customer GROUP BY cu_orgnr ORDER BY MIN(cu_name)"
rstRecSet = objCon.Execute(queryCustomer)
%>
<select class="select_normal">
<%
Do While Not rstRecSet.EOF
%>
<option value="<%= rstRecSet("cu_orgnr")%>"><%= rstRecSet("forsta_cu_name")%></option>
<%
rstRecSet.MoveNext
Loop
%>
</select>
<%
rstRecSet.Close
Set rstRecSet = Nothing
%>
..eller?
Sv:Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
Sv: Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
queryCustomer = "SELECT cu_orgnr, MIN(cu_name) AS forsta_cu_name FROM customer ORDER BY MIN(cu_name) GROUP BY cu_orgnr"
/JohanSv:Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
/admin/page/pageSettings.asp, line 115
114: queryCustomer = "SELECT cu_orgnr, MIN(cu_name) AS forsta_cu_name FROM customer ORDER BY MIN(cu_name) GROUP BY cu_orgnr"
115: rstRecSet = objCon.Execute(queryCustomer)Sv: Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
alternativt...
SELECT DISTINCT cu_orgnr,cu_name FROM customer GROUP BY cu_orgnr LIMIT 1
Är det den du vill åt?Sv:Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
jag vill ju sortera ut alla unika orgnummer tillsammans med företagsnamn och om det finns flera företags namn (olika stavninger eller fel tex.) så skall den matcha orgnummret med det första namnet i fallande ordning, så om tex har nummer:
969712-7281 | Städ AB
969712-7281 | Städ
så skall den ändast skriva ut <option value="969712-7281">Städ</option>Sv: Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
"SELECT cu_orgnr, MIN(cu_name) AS forsta_cu_name FROM customer GROUP BY cu_orgnr ORDER BY forsta_cu_name"
/JohanSv:Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
väldigt märkligt, din kod fungerade inte heller den svarar nu bara "Object doesn't support this property or method: 'EOF'"
Vad är felet lixom?Sv: Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
Set rstRecSet = objCon.Execute(queryCustomer)
--- Gör i så fall så här i stället...
OBS! Johans SQL sats!!!!!
queryCustomer = "SELECT cu_orgnr, MIN(cu_name) AS forsta_cu_name FROM customer GROUP BY cu_orgnr ORDER BY forsta_cu_name"
Set rstRecSet = Server.CreateObject("ADODB.Recordset")
rstRecSet.Open queryCustomer , objCon, adLockReadOnly, adCmdText
och sedan din loop.Sv:Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
en sak bara, alla som har samma org nummer samt samma namn bara att ena namnet stavas med en versal och det andra med en gemen så visas det 2 ggr i listan tex "Wellness" och "wellness" och även "Bestpos Marketing" och "Bestpos Marketing" (samma stavning men den verkar tolka mellansklag konstigt)Sv: Hämta alla unika org nummer med respektive företagsnamn, min kod ger fel res
Testa t.ex. såhär:
"SELECT cu_orgnr, MIN(TRIM(UPPER(cu_name))) AS forsta_cu_name FROM customer GROUP BY cu_orgnr ORDER BY forsta_cu_name"
/Johan