|
| Flere subqueries Fra : pkjoeller | Vist : 366 gange 300 point Dato : 20-11-02 22:21 |
|
Hej
Jeg har en Access-tabel, der ser omtrent sådan ud
Vare Kunde Antal
HN NA 20
HN NA 15
HM NB 10
HM NA 5
HN NC 7
HL NA 5
osv.
Jeg vil gerne have konstrueret en SQL-sætning, der kan give følgende resultat:
Kunde Antal, HN Antal, HM Antal, HL Antal, Total
NA 35 5 5 45
NB 10 10
NC 7 7
Nogen forslag?
mvh
Per
| |
| Kommentar Fra : pkjoeller |
Dato : 24-11-02 14:43 |
|
Tak for svaret.
Jeg er ikke nogen 'haj' til SQL, og en søgning på Google gav ikke nogen umiddelbart brugbare eksempler. Kan du hjælpe mig lidt mere? Evt. med et link til et eksempel.
På forhånd tak.
| |
| Kommentar Fra : pkjoeller |
Dato : 28-11-02 22:53 |
|
Jeg har nu fået følgende bikset sammen. MEN - det virker ikke. Hvorfor?
strSQL = "SELECT CustomerID, HN, HM, tot "_
& "FROM "_
& "(TRANSFORM SUM(Qty) "_
& "SELECT CustomerID, SUM(Qty) AS tot "_
& "FROM tblSALG1 "_
& "WHERE Code BETWEEN 'HA' AND 'IZ' "_
& "GROUP BY CustomerID "_
& "PIVOT Code) "_
& "ORDER BY tot DESC"
| |
| Kommentar Fra : pkjoeller |
Dato : 29-11-02 12:45 |
|
Udtrækket skal vises i en browser ved hjælp af en asp-side.
| |
| Kommentar Fra : pkjoeller |
Dato : 29-11-02 14:51 |
|
Den 'invendige' del sql-strengen (TRANSFORM .... PIVOT Code) virker. Problemet opstår, når jeg vil have data'ene sorteret faldende.
| |
|
Længe siden, men alligevel...
En mulig løsning kunne være:
select K1.*, (K1.HL + K1.HM + K1.HN) as total
from ( select kunde,
sum(case Vare when 'HL' then Antal ELSE 0 END) AS HL,
sum(case Vare when 'HM' then Antal ELSE 0 END) AS HM,
sum(case Vare when 'HN' then Antal ELSE 0 END) AS HN
from kandu as K
group by K.kunde) as K1
mvh
MouseKeeperX
| |
|
Hejsa pkjoeller m.fl.
Jeg vil nu mene at de sagtens kan lade sig gøre med en simpel SQL. Dog kan den hurtigt vokse hvis man har mange varer, og der kan blive nogle flere problemer som man må arbejde sig ud af med en form for outer-joins; men denne virker. :
SELECT hn.kunde,
Sum(hn.antal) AS ['Varer HN'],
Sum(hm.antal) AS ['Varer HM'],
Sum(hl.antal) AS ['Varer HL'],
Sum(hn.antal+hm.antal+hl.antal) AS ['Varer total']
FROM tabel1 AS hn,
tabel1 AS hm,
tabel1 AS hl
WHERE hn.kunde=hm.kunde
And hn.kunde=hl.kunde
And hn.vare='HN'
And hm.vare='HM'
And hl.vare='HL'
GROUP BY hn.kunde;
Testet i Access !! med succes
Jeg ved så godt at der kan være problemer hvis alle kunder ikke har alle varer osv. men som sagt det må man så klare med outerjoins.
mvh
Poul-Erik
| |
|
Hvad med den her lavet som en crosstab query i Access, og så kaldt fra ASP siden?
TRANSFORM Sum(Table1.Antal) AS Total
SELECT Table1.Kunde, Sum(Table1.Antal) AS Ialt
FROM Table1
GROUP BY Table1.Kunde
ORDER BY Table1.Kunde, Table1.Vare
PIVOT Table1.Vare;
mvh,
Svend
| |
| Du har følgende muligheder | |
|
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
| |
|
|