Hallo,
Ik heb een problem met een SQL-query waar ik niet uit kom. Ik heb twee tabellen.
Tabel X met kolom A, B, C en D alsmede Tabel Y met kolom E, F, G en H. De tabellen ABC en EFG bevatten dezelfde informatie. Nu moet er een full join gemaakt worden waarbij ik alleen de kolommen A, B, C, D, en H overhoudt.
Veld A bevat dezelfde informatie als veld E
Veld B bevat dezelfde informatie als veld F
Veld C bevat dezelfde informatie als veld G
De join moet gedaan worden op
ON
A= E AND
B=F AND
C=G
Als ik een RIGHT OUTER JOIN doe, dan worden de waarden in tabel Y zonder match niet meegenomen, doe ik een LEFT OUTER JOIN dan geschiedt hetzeflde maar dan voor de waarden in Tabel X zonder match. Dit is dus niet de bedoeling.
Als ik een FULL JOIN doe, dan moet ik volgens mij alle kolommen A, B, C, D, E, F G, en H selecteren, terwijl ik juist wil dat de waarden uit Tabel Y voor wat betreft de velden E, F en G in de kolommen A, B, C worden gezet voor zover er geen match is. Ik realiseer mij dat voor een aantal records in veld D geen waarde bevat, hetzelfde geld voor kolom H. Kolommen A, B, en C bevatten altijd een waarde om ABC met EFG ge-‘full’- joined moeten worden.
Het betreft hier een tabel met werkelijke uitgaven (Tabel X, veld D) en budgetbedragen (Tabel Y, veld H), waarbij de eerste drie velden bestaan uit Afdelingsnr (A en E), Accountnr (B en F), en Projectnr (C en G).
Ik wil een tabel overhouden met:
- Afdelingsnr
- Accountnr
- Projectnr
- Werkelijke uitgave
- Budgetbedrag
Een aantal records bevatten dus wel een Afdelingsnr, Account en eventueel een projectnr (niet alleen uitgaven zijn projectgebonden) maar geen Werkelijke uitgaven maar wel een budget. En sommige records zullen dus wel een budgetbedrag bevatten maar geen uitgaven. Ik heb al wel iets gebouwd maar de tabelnamen en veldnamen zijn zo complex dat het niet zal helpen om de query hier te publiceren.
Ik heb een problem met een SQL-query waar ik niet uit kom. Ik heb twee tabellen.
Tabel X met kolom A, B, C en D alsmede Tabel Y met kolom E, F, G en H. De tabellen ABC en EFG bevatten dezelfde informatie. Nu moet er een full join gemaakt worden waarbij ik alleen de kolommen A, B, C, D, en H overhoudt.
Veld A bevat dezelfde informatie als veld E
Veld B bevat dezelfde informatie als veld F
Veld C bevat dezelfde informatie als veld G
De join moet gedaan worden op
ON
A= E AND
B=F AND
C=G
Als ik een RIGHT OUTER JOIN doe, dan worden de waarden in tabel Y zonder match niet meegenomen, doe ik een LEFT OUTER JOIN dan geschiedt hetzeflde maar dan voor de waarden in Tabel X zonder match. Dit is dus niet de bedoeling.
Als ik een FULL JOIN doe, dan moet ik volgens mij alle kolommen A, B, C, D, E, F G, en H selecteren, terwijl ik juist wil dat de waarden uit Tabel Y voor wat betreft de velden E, F en G in de kolommen A, B, C worden gezet voor zover er geen match is. Ik realiseer mij dat voor een aantal records in veld D geen waarde bevat, hetzelfde geld voor kolom H. Kolommen A, B, en C bevatten altijd een waarde om ABC met EFG ge-‘full’- joined moeten worden.
Het betreft hier een tabel met werkelijke uitgaven (Tabel X, veld D) en budgetbedragen (Tabel Y, veld H), waarbij de eerste drie velden bestaan uit Afdelingsnr (A en E), Accountnr (B en F), en Projectnr (C en G).
Ik wil een tabel overhouden met:
- Afdelingsnr
- Accountnr
- Projectnr
- Werkelijke uitgave
- Budgetbedrag
Een aantal records bevatten dus wel een Afdelingsnr, Account en eventueel een projectnr (niet alleen uitgaven zijn projectgebonden) maar geen Werkelijke uitgaven maar wel een budget. En sommige records zullen dus wel een budgetbedrag bevatten maar geen uitgaven. Ik heb al wel iets gebouwd maar de tabelnamen en veldnamen zijn zo complex dat het niet zal helpen om de query hier te publiceren.
WP: WH-MDC05J3E5,WH-MDC07J3E5, WPB: Atlantic Explore v4, PV: Solaredge (6,8kW) en SMA (4,3kW), 2 x Heishamon OT v3.1, Rpi v5, Rpi v4, 2 x Rpi v3, ESP32, Domoticz, EV: Nissan Leaf, ESS: Deye, Luyuan, 32kWh