Avatar billede playmman Nybegynder
06. januar 2005 - 13:15 Der er 5 kommentarer og
1 løsning

subquerie problem.

Vær hilset!

SELECT

inventtable.itemid as inventtableitemid,custvendexternalitem.itemid as custvendexternalitemitemid,
t2.itemrelation as pricedisctableitemrelation,inventtable.fabrikat,inventtable.netweight,
inventtable.intracode, custvendexternalitem.externalitemid,inventtable.primaryvendorid,
t2.accountrelation,custvendexternalitem.custvendrelation,t2.amount,
t2.currency,t2.deliverytime,t2.priceunit,t2.percent1,t2.unitid,t2.fromdate

FROM inventtable

INNER JOIN
    (
        SELECT fromdate,todate,percent1,unitid,itemrelation,amount,deliverytime,priceunit,
            currency,accountrelation
        FROM pricedisctable
        WHERE todate = '1900-01-01' AND accountrelation = '44948700'
            AND fromdate =
                (
                    SELECT MAX(fromdate)
                    FROM pricedisctable
                    WHERE todate = '1900-01-01'
                        AND accountrelation = '44948700'
                        AND itemrelation = inventtable.itemid
                       
                )
    ) AS t2
    ON (t2.itemrelation = inventtable.itemid)

INNER JOIN custvendexternalitem ON ( custvendexternalitem.itemid = inventtable.itemid )

WHERE custvendexternalitem.custvendrelation = '44948700'
    AND inventtable.itemid = '048-1476318'
    AND t2.accountrelation = custvendexternalitem.custvendrelation
    AND inventtable.primaryvendorid = '      44948700' AND inventtable.dataareaid = 100

ORDER BY inventtable.primaryvendorid


Jeg får fejlen:
Server: Msg 107, Level 16, State 3, Line 3
The column prefix 'inventtable' does not match with a table name or alias name used in the query.

Mit mål er at hente den nyeste post fra pricedisctable hvis de overholder mine kriterier. Dvs. den skal hente den nyeste fromdate som fx. har et itemrelation og accountrelation der matcher med den i inventtable.
Avatar billede playmman Nybegynder
06. januar 2005 - 13:19 #1
Jeg skal lige sige at fejlen ligger i
AND fromdate =
(
    SELECT MAX(fromdate)
    FROM pricedisctable
    WHERE todate = '1900-01-01'
        AND accountrelation = '44948700'
        AND itemrelation = inventtable.itemid
)
Avatar billede Syska Mester
06. januar 2005 - 15:23 #2
psyco sql sætning der må jeg nok sige, og nogle meget lange aliases :-), men ud over det ved jeg ikke lige hvad der er galt
Avatar billede jtbroad Nybegynder
06. januar 2005 - 16:07 #3
prøv AND itemid = pricedisctable.itemrelation
Avatar billede jtbroad Nybegynder
07. februar 2005 - 12:21 #4
prøv AND itemid = inventtableitemid

du har jo givet den en alias
Avatar billede playmman Nybegynder
07. februar 2005 - 17:58 #5
Hehe.. det er rigtigt! :)

Nu er det godt nok lang tid siden jeg selv så det. Men du skal aligevel have pointene. Opret lige et svar så jeg kan give dig dem.
Avatar billede jtbroad Nybegynder
08. februar 2005 - 09:56 #6
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester