|
|
 | 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
>
| |
|
|