info van 2 kolommen in 1 kolom plaatsen

Status
Niet open voor verdere reacties.

toyce

Nieuwe gebruiker
Lid geworden
20 sep 2010
Berichten
4
Hoi,
Ik heb een probleem. Ik wil info van 2 kolommen in 1 kolom verzamelen. Voorbeeld:
Ik heb een kolom met inkomsten en een kolom met uitgaven. Ik wil deze in 1 kolom krijgen (zonder ze meteen op te tellen, maar dus gewoon losse records) die ik in/uit wil noemen. Hoe doe ik dat?

Alvast bedankt voor jullie hulp!
 
Hoe stel je het samenvoegen voor? Als er in elke kolom een waarde staat, zul je de twee willen scheiden, lijkt mij. Dus hoe moet de nieuwe waaarde er uitzien?
 
Ik heb nu 1 regel met een aantal kolommen bv: naam, adres, inkomsten, uitgaven.
Ik wil 1 regel met naam, adres, inkomsten en een nieuwe regel met dezelfde naam, hetzelfde adres alleen dan met uitgaven.
Als het ware kopieer ik dus de oorspronkelijke regel en delete de inkomsten waarde.

Dat is ook hoe ik nu in excel de handeling handmatig doe. Ik kopieer alle regels die zowel inkomsten als uitgaven hebben,
dan delete ik uit de oorspronkelijke regels alle uitgaven
in de nieuwe (geplakte) regels schuif ik de inkomsten naar de uitgaven kolom. (snap je het nog? ;) )

Ik weet niet of je in access rijen kunt copy/pasten en dan cellen leegmaken...
 
Nee, ik snap 't niet meer :confused:... Je kunt niet, zoals in Excel, zomaar velden oppakken en verplaatsen, en dan oude velden verwijderen, zoals ik het althans begrijp. Zoals je de vraag stelde, wilde een extra kolom, met daarin bijvoorbeeld:
[Inkomsten Uitgaven In/Uit
500 500
300 100 300/100
200 200
Maar daar zit uiteraard niet zoveel logica in, want hoe weet je of iets uit de inkolom komt, of de uitkolom?
Vandaar mijn vraag wat je nu eigenlijk wilt.... Maak anders in Excel een voorbeeldje van wat basisgegevens, en wat er uit zou moeten rollen.
 
als het niet kan, dan kan het niet en dan moet ik het een handmatige excersitie houden... Geen man over boord maar zou handig zijn als het wel kan ;)
 
Zal er een blik op werpen!
 
Dit kan je doen door een union query.
Hoe doe je dit?
Maak eerst 2 query's waarin je in de eerste query naam en uitgaand bedrag maakt en de tweede naam en inkomsten.
Kopier de SQL code van de eerste query
Open de 2e query. Haal de ; (puntkomma) op het einde weg en vervang deze door UNION, plak de SQLcode van de 1e query er achter.
 
Bijna goed.... Het mooist is als je in de beide queries de naam van het gezamelijke veld aangeeft, zodat je dat veld kunt gebruiken in de verzamelquery. De queries zien er, op basis van jouw voorbeeld, dan zo uit:
Code:
SELECT Naam, Adres, inkomsten AS [In/Uitgaven]
FROM [In-Uitgaven];
Deze query heb ik qInkomsten genoemd.
Code:
SELECT Naam, Adres, -(Abs([uitgaven])) AS [In/Uitgaven]
FROM [In-Uitgaven];
Deze query heet qUitgaven in het voorbeeld. Zoals je ziet, heb ik er een extra functie bijgezet, om er voor te zorgen dat het veld Uitgaven altijd een negatief teken krijgt. Omdat je de uitgaven in een apart veld hebt staan, zou dat wel eens een keer vergeten kunnen zijn, en dat wil je in de verzamelquery uiteraard voorkomen.
de UNION query ziet er dan zo uit:

Code:
SELECT Naam, Adres, nz([In/Uitgaven],0) As [In-Uitgaven] FROM qInkomsten
UNION ALL SELECT Naam, Adres, nz([In/Uitgaven],0)  As [In-Uitgaven] FROM qUitgaven
ORDER BY Naam;
Hier zit ook weer een functie bij, (functie Nz) die gebruikt wordt om de lege velden de waarde 0 te geven. Als je dat niet wilt; kun je die functie verwijderen. De niet-gevulde velden blijven dan leeg.
Een Union query moet je altijd intypen; die kun je dus niet met een wizard maken, al kun je wel met één query beginnen, en de andere code er bij typen.
 
@octafish,
je mag je naam veranderen in OracleFisch :)

Ik was inderdaad kort door de bocht...
Union bouw ik altijd snel door 2 aparte query's op te zetten en de SQL achterelkaar te plakken. Voordeel is dat je de output van te voren kan controleren en het scheelt typefouten (heb ik nogal last van). Mooi uitgewerkt :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan