Har fått TOTALT hjärnsläpp....kommer inte på lösningen till ett problem!
Jag har två tabeller (12797016_Nov02) och (12797016_Dec02), datan i båda tabellerna importeras från Excelfiler och fälten i tabellerna har därför samma namn (och det skall helst förbli så).
Informationen som finns i de båda tabellerna förändras månad för månad och meningen är att dom skall jämföras. Om informationen i ett fält, tex partNumber, för Nov02 är annorlunda informationen i samma fält fast i Dec02 så skall det markeras, annars skall nyaste fältet (Dec02) skrivas ut.
Demonstration...typ... ;)
IF rs("PartNumber") <> rs2("PartNumber") then
response.write "Förändring har skett"
ELSE
'Om samma så skriv ut den nyaste informationen, alltså från tabellen 12797016_[b]Dec[/b]02
response.write rs2("PartNumber")
END IF
partNumber = numeriskt fält
Men jag får inte till select satsen...och därmed inte loopen som skall lista ett hundratal artiklar!
Hur ska jag jämföra data från olika tabeller när fälten har samma namn och hur skulle en loop för detta se ut !?????!
Är inte säker på om denna kod fungerar men den ger dig i alla fal lite hjälp.
sql = & _
"select A.Partnumber, B.Partnumber from tabell1 as A, tabell2 as B " &_
"WHERE A.Partnumber = B.Partnumber " &_
"ORDER BY A.Partnumber DESC
Det handlar i alla fall om att du sätter exempelvis A. framför fältnamnet för att specificera vilken tabell det gäller. Sedan är jag inte så säker på hur man gör. Har fåt hjälp med det avklippan LarsG. Sök i SQL eller ASP forumet så hittar du säkert mer hjälp
Men informationen i tabellerna går enligt radnummer, eller ID (primary key) i detta fallet.
Nedan har vi två månader. Ideén är att man skall kunna följa uppdateringar som sker för ett antal delar i en motor.
Det kan vara så att det ändras i ett fält från en månad till en annan, men det kan också vara så att en hel rad tas bort.
Jag måste jämföra de två tabellerna radvis och därmed fältvis.
Om ett fält i 12797016_Dec02 skiljer sig från föregående månads rapport, alltså 12797016_Nov02, så skall detta markeras
tex genom att skriva ut "<- ändring har skett" eller liknande (se *).
Det kan ju som sagt också vara så att en hel rad är borttagen då delen är borttagen ur motorn och då skulle jag helst
vilja att det markeras att "en rad fattas" (se **).
12797016_Dec02
primary key partnumber notes
1 00127992 levereras 03-02-01* <- ändring har skett
2 00127801 levereras 03-01-10
** <- rad borttagen
4 00127662 del slut på lager
12797016_Nov02
primary key partnumber notes
1 00127992 del slut på lager
2 00127801 levereras 03-01-10
3 00127221 utgående
4 00127662 del slut på lager
Men som sagt, jag har ingen aning vart jag skall börja...jag får inte till någon vettig selectsats...
Då behövs en full outer join, om det inte finns direkt stöd i DBMS så går det att skriva som
select t1.partnumber,t2.notes
from [12797016_DEC02] T1 inner join
[12797016_NOV02] t2
on t1.partnummer=t2.partnummer
union all
select t1.patnumber,t1.notes
from [12797016_DEC02] T1 left outer join
[12797016_NOV02] t2
on t1.partnummer=t2.partnummer
where t2.partnumber is null
union all
select t2.patnumber,t2.notes
from [12797016_DEC02] T1 right outer join
[12797016_NOV02] t2
on t1.partnummer=t2.partnummer
where t1.partnumber is null
order by partnumber
Varför har du så räliga tabellnamn? Att använda [] är inte sql-standard men behövs i Access t.ex. Egentligen skall man använda "12797016_NOV02"
Hmm ok, jag får tacka så mycket för förklaringen OveRRide. Detta ser lite...mm...annorlunda ut än vad jag brukar göra. Därav min ovanligt förvirrade förvirring! :r
Jag fick fram en början, så nu är det väl bara att fortsätta klura...
TACKAR så mycket för hjälpen allihop! LarsG och OveRRIde > :f .
Men jag säger som Terminator - "I'll be back!" ;)