Får bara felet Ambiguous column name 'width'.
Då beror det på att fältet width finns i mer än en tabell i din SQL-fråga. Kvalificera fältet med tabellens namn.
... tbl_transportSizes.width ...
Databaser & SQLur Databashanterare & SQL
4 svar · 1 886 visningar · startad av evilaid
Hej
Jag vet att det ska gå men får inte till det riktgit. Det är så att jag vill räkna ihop vissa kolumner i ett fält och sumera resultatet av alla rader..
Frågan ser ut så här:
SQL = "SELECT sum() as ant FROM tbl_transportSizes AS ts LEFT OUTER JOIN tbl_transport AS t ON ts.transportID = t.id where week='"&request.QueryString("week")&"' "
dom klumner jag vill räkna ihop för varje fält är enligt:
Round((((db("length")/100)*(db("width")/100))/2.4),2)
försökte med detta:
SELECT sum(Round((((length/100)*(width/100))/2.4),2)
) as ant FROM tbl_transportSizes AS ts LEFT OUTER JOIN tbl_transport AS t ON ts.transportID = t.id where week='1110'
Får bara felet Ambiguous column name 'width'.
Mvh
Får bara felet Ambiguous column name 'width'.
Då beror det på att fältet width finns i mer än en tabell i din SQL-fråga. Kvalificera fältet med tabellens namn.
... tbl_transportSizes.width ...
ok. hittade lite fel
så här ska det vara
SELECT sum(Round((((ts.length/100)*(tw.width/100))/2.4),2)
) as ant FROM tbl_transportSizes AS ts LEFT OUTER JOIN tbl_transport AS t ON ts.transportID = t.id LEFT OUTER JOIN tbl_transportWidth AS tw ON ts.width = tw.id where week='1110'
men det rapporterar bara tillbaka 0,0000000 i ant, raderna hämtas ju korrekt om jag tar bort sumeringsdelen i frågan men vid sumering blir detbara 0 ?
ok att jag har kolumnen width i fler tabeller men nu har jag ju i sumeringfunktionen definiera det som tw.width , något annat som kan spöka?
Här hittade jag felet
sum(Round((tw.width/100),2)) as antal
frågan hämtar två rader, värdet för dom två raderna i tw.width är 80 och 60.. men hur kan det bli 0?
Dividerar jag med 10 istället för 100 så får jag svaret 14 med dividerar jag med 100 så blir 0 men borde ju bli 1,4??
formeln fungerar ju när jag kör den som ren asp kod men i SQL frågan blir det 0 ?
går detanvända något annat än round? felet verkar ju ligga där då det blir noll hela tiden
Känns som att du blandar heltal och decimaltal, då blir det noll.
Testa
sum(Round((((length/100.0)*(width/100.0))/2.4),2.0)
om length och width också är heltal så kan du behöva göra om de till decimaltal
sum(Round((((cast(length as decimal)/100.0)*(cast(width as decimal)/100.0))/2.4),2.0)