Databas: Access 2000 Hej. Räcker det med IN? ...och det går dessutom att göra SELECT i en SELECT : Det jag vill åstadkomma är: Hej. Problem uppstår eftersom tblDamage.DamageType innehåller värdena 1,3,5 är i text-format medan tblDamageTypes.pkDamageTypeID är räknare(integer). Hej. Arrayen jag pratar om hela tiden fylls via en listbox, om användaren ej markerat något alternativ blir värdet i array'en = % annars: t.ex. 1,5. SELECT-sats inuti en annan SELECT-sats, går det?
Plattform: ASP.NET
Språk: VB
Om man t.e.x i en access-kolumn har värdet: 1,2,3 och vill jämföra detta med en inkommande sträng (array) med värdet 1,3, går detta på något sätt.Sv: SELECT-sats inuti en annan SELECT-sats, går det?
strSQL = "SELECT * FROM tblTabel WHERE ID IN(" & myCommaSeparatedString & ")"
Var det så du tänkte?
//freddaSv: SELECT-sats inuti en annan SELECT-sats, går det?
Jag har "labbat" med LIKE '%' & [@Mittvärde] & '%', men nu skall jag prova med ditt förslag ställetSv: SELECT-sats inuti en annan SELECT-sats, går det?
"SELECT * FROM MyTable WHERE ID IN (SELECT ID FROM AnotherOrSameTable WHERE ID<100)"
Mycket användbart i vissa situationer.Sv: SELECT-sats inuti en annan SELECT-sats, går det?
1. Vill jämföra min array mot värden i kolumn, detta går alldeles utmärkt med den hjälp jag fått av er.
2. Om t.ex. kolumnen innehåller 1,3,5 så vill jag hämta beskrivningen av varje id från en annan tabell som ser ut:
pkDamageID (räknare) samt DamageDescription (text)
1 Ansvarsskada
3 Maskinskada
5 BrandSv: SELECT-sats inuti en annan SELECT-sats, går det?
Nåt sånthär:
strSQL = "SELECT tblTabel.*, Damage.DamageDescription FROM tblTabel
INNER JOIN Damage ON tblTabel.DamageID = Damage.DamageID
WHERE tblTabel.ID IN(" & myCommaSeparatedString & ")"
Reserverar mig för fel, men principen bör vara den rätta.
//freddaSv: SELECT-sats inuti en annan SELECT-sats, går det?
Hur göra?Sv: SELECT-sats inuti en annan SELECT-sats, går det?
Visa hur din SQL-sats ser ut nu... Samt hur den ser ut i runtime, dvs fylld av värden.
Då skall detta lösas.
//freddaSv: SELECT-sats inuti en annan SELECT-sats, går det?
Kan jag med IN även välja alla värden med % eller hur gör jag då?
Min selectsats ser ut såhär i dagsläget (hämtar endast heltalen från tblDamages samt användarnamnet på den som registrerade skadan från tblUserDetails):
<code>
SELECT tblDamages.*, tblUserDetails.FirstName, tblUserDetails.LastName, tblDamages.fkPropertyID
FROM tblDamages INNER JOIN tblUserDetails ON tblDamages.fkPostedByID = tblUserDetails.fkUserID
WHERE (((tblDamages.DamageDate) Like '%' & [@DamageYear] & '%') AND ((tblDamages.fkPostedByID) Like '%' & [@DamagePostedByID] & '%') AND ((tblDamages.DamageConcluded) Like '%' & [@DamageConcluded] & '%') AND ((tblDamages.PropertyPart) Like '%' & [@DamagePropertyParts] & '%') AND ((tblDamages.DamageType) Like '%' & [@DamageTypes] & '%') AND ((tblDamages.Environment) Like '%' & [@DamageEnvironments] & '%') AND ((tblDamages.Threat) Like '%' & [@DamageThreats] & '%') AND ((tblDamages.DamageCausedBy) Like '%' & [@DamageCausedBy] & '%') AND ((tblDamages.fkPropertyID)=[@PropertyID]))
ORDER BY tblDamages.DamageDate DESC;
</code>