/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MS SQL Query Problem (HASTER) ;)
Fra : Dennis T. Holm


Dato : 29-04-03 07:52

Hej.. .Jeg har i en tid arbejdet med SQL, men er efter intens arbejde næsten
blevet blind og kan ikke se hvad der er galt med denne her sætning.. Den kan
måske lige være lidt svær at overskue, men har skåret den ned til så lidt
som muligt for at gøre det mere overskueligt...
Problemet er at når jeg i 1 linie tilføjer at ville SELECTE SUM(Agr.NoReg)
Så får jeg en fejl som siger at det er en aggregat tingest. Skriver jeg
istedet bare at jeg vil selecte Agr.NoReg så gentager alle de andre
attributter sig i mit resultat undtagen Agr.NoReg som har forskellige
numre.. Men jeg SKAL have den til at summere mit Agr.NoReg felt..

Som du her ser SELECT sætning, har jeg valgt bare at vælge Agr.NoReg.. Men
jeg ønsker at dette felt skal SUMMERES for hver OrdLn.OrdNo...

Nogen der kan hjælpe.. Sidder i en stak lort lige nu, da jeg ikke kan komme
videre med mit arbejde før dette er løst :)

På Forhånd tak for hjælpen

Dennis T. Holm

SELECT TOP 100 PERCENT POrd.OrdNo AS POrd,

(SELECT SUM(OrdLn.NoFin)

FROM OrdLn INNER JOIN

Prod ON Prod.ProdNo = OrdLn.ProdNo AND Prod.ProdTp4 = 0

WHERE OrdLn.OrdNo = POrd.OrdNo AND OrdLn.ProdTp2 = 32) AS Brok,

(SELECT SUM(OrdLn.NoInvoAb + OrdLn.NoFin)

FROM OrdLn INNER JOIN

Prod ON Prod.ProdNo = OrdLn.ProdNo AND Prod.ProdTp4 = 0 AND Prod.ProdTp = 1

WHERE OrdLn.OrdNo = POrd.OrdNo) AS TotalVgt, CONVERT(datetime,
CONVERT(varchar(20), NULLIF (POrd.FinDt, 0))) AS FinDato,

ProdLn.ProdNo AS ProdNr, ProdLn.NoFin AS ProdAntal, Agr.NoReg

FROM Ord POrd INNER JOIN

Agr ON POrd.OrdNo = Agr.OrdNo LEFT OUTER JOIN

Ord CustOrd ON POrd.MainOrd = CustOrd.OrdNo LEFT OUTER JOIN

OrdLn ProdLn ON ProdLn.OrdNo = POrd.OrdNo AND ((ProdLn.OrdLnSt & 1024) > 0
OR

(ProdLn.OrdLnSt & 2048) > 0) LEFT OUTER JOIN

Prod ProdLnProd ON ProdLnProd.ProdNo = ProdLn.ProdNo LEFT OUTER JOIN

R2 Sag ON Sag.RNo = ProdLn.R2

WHERE (ProdLn.NoFin > 0)

ORDER BY POrd.OrdNo



 
 
Nikolaj Hansen (30-04-2003)
Kommentar
Fra : Nikolaj Hansen


Dato : 30-04-03 00:45

hmm, jeg anser efterhånden mig selv som rimelig habil til sql, og jeg
har ikke en anelse om, hvad det er du har gang i her Det er et
"sort" query.

Gider du poste et rids af din datam model, samt hvad du vil frem til, så
er jeg sikker på jeg eller en anden let kan skrive det query.

Jeg synes bare man kan se at MSSQL's tendens til at bruge inner joins på
alt hvor det ikke er nødvendigt ikke gør sql mere læseligt.

- Nico


Dennis T. Holm (30-04-2003)
Kommentar
Fra : Dennis T. Holm


Dato : 30-04-03 07:38

Problemet løst indtil videre, men tak for hjælpen alligevel :)

Mvh Dennis T. HOlm
"Nikolaj Hansen" <barnabasdk@mail.yahoo.dk> skrev i en meddelelse
news:W6Era.41944$y3.2933341@news010.worldonline.dk...
> hmm, jeg anser efterhånden mig selv som rimelig habil til sql, og jeg
> har ikke en anelse om, hvad det er du har gang i her Det er et
> "sort" query.
>
> Gider du poste et rids af din datam model, samt hvad du vil frem til, så
> er jeg sikker på jeg eller en anden let kan skrive det query.
>
> Jeg synes bare man kan se at MSSQL's tendens til at bruge inner joins på
> alt hvor det ikke er nødvendigt ikke gør sql mere læseligt.
>
> - Nico
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste