|
| [MSSQL] Beregning af en masse poster Fra : Niels Henriksen |
Dato : 20-10-03 10:27 |
|
Ja... må lige prøve at beskrive problemet:
Jeg har en tabel der ser ud som følger
Tabel
-----
ID
KundeNr (tekst)
Pris (tal)
Type (tekst)
Problemet er at der kan være 4 forskellige typer og jeg tit skal have en
liste ud der ser sådanne ud:
Kundenr - PrisType1 - PrisType2 - PrisType3 - PrisType4
Kundenr skal være SELECT DESTINCT.
PrisTypeX er altså en sammenlægning af prisen i TypeX. Som det er nu laver
jeg 4 forespørgsler som går ok hurtigt, men jeg ved (håber jeg) at det hele
vil kunne gøres i én arbejdsgang. Min tanke var 4 forespørgsler i én SELECT
(gad vide om det kan lade sig gøre)
Jeg har fuld adgang til databasen, så jeg kan alt på den. Jeg har tæntk på
en Stored Procedure, men det er lang tid siden jeg har lavet sådan en.
--
Niels Henriksen
| |
Peter Lykkegaard (20-10-2003)
| Kommentar Fra : Peter Lykkegaard |
Dato : 20-10-03 10:38 |
|
"Niels Henriksen" <news03@biggs.dk> wrote in message
news:HQNkb.706$vZ3.76@news.get2net.dk...
> Ja... må lige prøve at beskrive problemet:
>
> Jeg har en tabel der ser ud som følger
>
> Tabel
> -----
> ID
> KundeNr (tekst)
> Pris (tal)
> Type (tekst)
>
> Problemet er at der kan være 4 forskellige typer og jeg tit skal have en
> liste ud der ser sådanne ud:
>
> Kundenr - PrisType1 - PrisType2 - PrisType3 - PrisType4
>
Du skal have gang i noget UNION
> Kundenr skal være SELECT DESTINCT.
>
> PrisTypeX er altså en sammenlægning af prisen i TypeX. Som det er nu laver
> jeg 4 forespørgsler som går ok hurtigt, men jeg ved (håber jeg) at det
hele
> vil kunne gøres i én arbejdsgang. Min tanke var 4 forespørgsler i én
SELECT
> (gad vide om det kan lade sig gøre)
>
Jo vha UNION
> Jeg har fuld adgang til databasen, så jeg kan alt på den. Jeg har tæntk på
> en Stored Procedure, men det er lang tid siden jeg har lavet sådan en.
>
Der er ikke den store forskel i at lave en alm forespørgsel og så en SP
Det funktionelle er ens
I SP'en har du nogle parametre du kan overføre
fx
Create MySP @MyVar Varchar(10) AS
Select * From MyTable Where MyField = @MyVar
Exec MySP @MyVar = 'test'
I modsætning til denne
Select * From MyTable Where MyField = 'test'
mvh/Peter Lykkegaard
| |
Kristian Damm Jensen (20-10-2003)
| Kommentar Fra : Kristian Damm Jensen |
Dato : 20-10-03 11:20 |
|
"Niels Henriksen" <news03@biggs.dk> skrev i en meddelelse
news:HQNkb.706$vZ3.76@news.get2net.dk...
> Ja... må lige prøve at beskrive problemet:
>
> Jeg har en tabel der ser ud som følger
>
> Tabel
> -----
> ID
> KundeNr (tekst)
> Pris (tal)
> Type (tekst)
>
> Problemet er at der kan være 4 forskellige typer og jeg tit skal have en
> liste ud der ser sådanne ud:
>
> Kundenr - PrisType1 - PrisType2 - PrisType3 - PrisType4
>
> Kundenr skal være SELECT DESTINCT.
>
> PrisTypeX er altså en sammenlægning af prisen i TypeX. Som det er nu laver
> jeg 4 forespørgsler som går ok hurtigt, men jeg ved (håber jeg) at det
hele
> vil kunne gøres i én arbejdsgang. Min tanke var 4 forespørgsler i én
SELECT
> (gad vide om det kan lade sig gøre)
>
> Jeg har fuld adgang til databasen, så jeg kan alt på den. Jeg har tæntk på
> en Stored Procedure, men det er lang tid siden jeg har lavet sådan en.
Gad vidst, om ikke det her klarer jobbet?
select t0.Kundenr as Kundenr
, sum(t1.pris) as PrisType1
, sum(t2.pris) as PrisType2
, sum(t3.pris) as PrisType3
, sum(t4.pris) as PrisType4
from tabel t0
join tabel t1
on t0.kundenr = t1.kundenr
and t1.type = 'type1'
join tabel t2
on t0.kundenr = t2.kundenr
and t2.type = 'type2'
join tabel t3
on t0.kundenr = t3.kundenr
and t3.type = 'type3'
join tabel t4
on t0.kundenr = t4.kundenr
and t4.type = 'type4'
group by t0.kundenr
--
Kristian Damm Jensen
damm (at) ofir (dot) dk
| |
Niels Henriksen (20-10-2003)
| Kommentar Fra : Niels Henriksen |
Dato : 20-10-03 12:26 |
|
"Kristian Damm Jensen" <REdammMOVE@ofir.dk> wrote in message
news:bn0cr1$rgbmn$1@ID-146708.news.uni-berlin.de...
>
> Gad vidst, om ikke det her klarer jobbet?
>
Det vil jeg lige prøve at se på... Men damn det kan være uoverskuligt :)
Takker
--
Niels
| |
|
|