Jag har ett litet problem... om det är möjligt att lösa. Det går att lösa med SQL men bara med statiska valutakolumner. Det är det jag inte vill - tyvärr... Jag vill att den skall vara flexibel ungefär som en While sats Såhär? Nu börjar det hända grejet... Troligtvis precis det jag vill ha! Tror att just denna syntaxen enbart fungerar i Access, antog att det var det du sökte eftersom du postade i Access-forumet. Finns den i andra databaser också? Eller heter den ngt anat där... Det står på den sidan att det bara är för AccessEn SQL-fråga
Tre tabeller:
Kit:
ID
Namn Namn på kit (varan)
Purchase Price Inköpspris
ParameterID Kopplat till parametern Id i parameter
Parameter:
ID
Namn Namn på parametern
Intercompany pricing:
ID
ParameterID Kopplat till parametern Id i parameter
Currency Valuta
AddOn Inköpsökning beroende på land
Varje Kit tillhör en parameter, varje parameter kan tillhöra flera kit.
Varje kit har ett inköpspris vilket är olika i olika länder som företaget jobbar i exempelvis i Sverige är inköpspriset 100 dollar, men i Norge är inköpspriset 135 dollar pga Norge beställer från Sverige för det är inom samma bolag men får betala för en del av Sveriges transport, personal och logistikkostnader.
Problemet är att det kan vara tre, eller fem, eller sju länder. Det skall inte spela någon roll.
Nu till poängen... Jag vill få fram en lista enligt följande (skall presenteras i en rapport):
KitNamn Sverige Norge Danmark Estland
--------- --------- ------- ----------- ---------
Namn 100 135 127 130
eller
KitNamn Sverige Norge Danmark Estland Lettland
--------- --------- ------- ----------- --------- ----------
Namn 100 135 127 130 132
beroende på hur många länder som företaget har valt att jobba i...???
Är detta möjligt? Ungefär som en tvådimensionell array.
Mvh AndersSv: En SQL-fråga
Du kan bygga upp din SQL dynamiskt om det inte kan vara statiskt.
Jag förenklare caset för att visa principen. Två tabeller: Product och Price.
Product
- ProdId
- ProdName
Price
- ProdId
- Currency
- Amount
SELECT ProdName, SEK.Amount, USD.Amount
FROM Product P
INNER JOIN Price SEK ON P.ProdId=SEK.ProdId AND SEK.Currency="SEK"
INNER JOIN Price USD ON P.ProdId=USD.ProdId AND USD.Currency="USD"Sv:En SQL-fråga
Do
Räkna ut pris för detta landet
While (Det finns ytterligare en valuta...)
Mao är det möjligt, eller inte?!?!? Det verkar som på ditt svar att det inte är möjligt.Sv: En SQL-fråga
TRANSFORM Sum([Purchase Price]+[AddOn])
SELECT Kit.Namn
FROM Kit INNER JOIN [Intercompany pricing] ON Kit.ParameterID = [Intercompany pricing].ParameterID
GROUP BY Kit.Namn
PIVOT [Intercompany pricing].Currency;
/Johan
Sv:En SQL-fråga
Nu måste jag bara kolla upp hur TRANSFORM och PIVOT fungerar. Vid första kollen som jag hittade för typ tio sekunder sedan funkar detta bara i Microsofts databaser och inte i övriga, eller beror detta på att det inte är ett standardiserat förfarande, eller?!?!?
Mhv Anders
Ps. Ooups felstalat Mvh, men så blir det när man blir lite upphetsad, dock inte så att det blir blött i kalsongerna men ändå... Ds.Sv: En SQL-fråga
/JohanSv:En SQL-fråga
Egentligen är det just Access som jag jobbar i, men jag undrar mer för intressets skull om det finns för fler databaser.
Mvh Anders.
Ps. http://ewbi.blogs.com/develops/2005/01/access_sql_tran.html hittade jag som bra exempel... Ds.Sv: En SQL-fråga
"The Access SQL TRANSFORM statement is a non-standard extension to SQL-92 implemented by Microsoft's JET database engine to create crosstab queries. "
SQL server har nåt liknande
(ROLLUP och CUBE tror jag de heter)