![]() |
Trubbel med SQL
Tjena!
Kan man i SQL göra något liknande detta: Kod:
SELECT (tbl.ett * calc2) AS calc1, (tbl.sju * tbl.tre) AS calc2 FROM table AS tbl Går det att göra såhär eller måste man använda någon slags subquery? |
Skulle vara enklare att göra så här:
Kod:
SELECT (tbl.ett * (tbl.sju * tbl.tre)) as calc1, (tbl.sju * tbl.tre) as calc2 FROM table AS tbl |
Yes, men nu ser inte min query ut precis sådär utan det var bara ett exempel, tyvärr :)
Men det verkar inte som det funkar då den inte vet vad "calc2" är innan den har kört queryn. Får forska vidare på alternativ. Tack ändå! |
Den vet inget om calc2 innan den hämtar fälten. Skulle du sortera eller gruppera på calc2 skulle det funka utmärkt t ex. Behöver du bearbeta fälten helt fritt i select-delen får du skapa en subquery som hämtar det först. I ditt exempelfall blir det dock betydligt mer effektivt att göra som Jonas säger (kanske 5 gånger snabbare skulle jag tro). Så vad som är bästa lösningen för ditt fall går inte att säga från ditt exempel om det saknar relevans för det riktiga fallet.
|
Citat:
Tack ändå! |
Alla tider är GMT +2. Klockan är nu 08:32. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson