Ik heb 3 tabellen waaruit ik gegevens wil "verzamelen". Ik ga proberen eea zo duidelijk mogelijk uit te leggen. Eventueel heb ik een db die ik kan mailen waarin je het geheel kan zien. Ik hoop dat er iemand iets meer van snapt dan ik.
tabel 1. TabelControlesubtaken
Met de (van belangzijnde) velden:
Id, TaakId, SubtaakId, Reistijd, Voorbereiding, Controle, Rapport, Totaal
tabel 2. TabelBedrijfControle
Met de velden:
Id, BedrijfId, TaakId, Datumplanning, DatumRealisatie
tabel 3. Kengetallen
Met de (van belangzijnde) velden:
Id, TaakId, TijdReistijd
Het veld TabelControlesubtaken.TaakId is via een LEFT JOIN gekoppeld aan het veld TabelBedrijfControle.TaakId.
Wat ik nu wil is per record uit de tabel TabelControleSubtaken weergeven hoeveel tijd er is geregistreerd (tot zover geen probleem) en wat de bijbehorende tijd uit de tabel Kengetallen is. Ik heb de onderstaande SQL opdracht gemaakt, maar krijg nu de melding
Deze subquery kan maximaal één record als resultaat hebben.
SELECT TabelControleSubtaken.Id, TabelControleSubtaken.DatumRealisatie, TabelControleSubtaken.Reistijd, TabelControleSubtaken.Voorbereiding, TabelControleSubtaken.Controle, TabelControleSubtaken.Rapport, TabelControleSubtaken.Totaal, [tabelControleSubtaken].[Reistijd]+[tabelControleSubtaken].[Voorbereiding]+[tabelControleSubtaken].[controle]+[tabelControleSubtaken].[Rapport]+[tabelControleSubtaken].[Totaal] AS Tijd, (SELECT tijdreistijd FROM Kengetallen WHERE Kengetallen.TaakId=[TabelbedrijfControle].[TaakId] AND Kengetallen.SubTaakId=[SubtaakId]) AS KengetalTijd
FROM TabelControleSubtaken LEFT JOIN TabelBedrijfControle ON TabelControleSubtaken.TaakId = TabelBedrijfControle.Id
ORDER BY TabelControleSubtaken.DatumRealisatie;
tabel 1. TabelControlesubtaken
Met de (van belangzijnde) velden:
Id, TaakId, SubtaakId, Reistijd, Voorbereiding, Controle, Rapport, Totaal
tabel 2. TabelBedrijfControle
Met de velden:
Id, BedrijfId, TaakId, Datumplanning, DatumRealisatie
tabel 3. Kengetallen
Met de (van belangzijnde) velden:
Id, TaakId, TijdReistijd
Het veld TabelControlesubtaken.TaakId is via een LEFT JOIN gekoppeld aan het veld TabelBedrijfControle.TaakId.
Wat ik nu wil is per record uit de tabel TabelControleSubtaken weergeven hoeveel tijd er is geregistreerd (tot zover geen probleem) en wat de bijbehorende tijd uit de tabel Kengetallen is. Ik heb de onderstaande SQL opdracht gemaakt, maar krijg nu de melding
Deze subquery kan maximaal één record als resultaat hebben.
SELECT TabelControleSubtaken.Id, TabelControleSubtaken.DatumRealisatie, TabelControleSubtaken.Reistijd, TabelControleSubtaken.Voorbereiding, TabelControleSubtaken.Controle, TabelControleSubtaken.Rapport, TabelControleSubtaken.Totaal, [tabelControleSubtaken].[Reistijd]+[tabelControleSubtaken].[Voorbereiding]+[tabelControleSubtaken].[controle]+[tabelControleSubtaken].[Rapport]+[tabelControleSubtaken].[Totaal] AS Tijd, (SELECT tijdreistijd FROM Kengetallen WHERE Kengetallen.TaakId=[TabelbedrijfControle].[TaakId] AND Kengetallen.SubTaakId=[SubtaakId]) AS KengetalTijd
FROM TabelControleSubtaken LEFT JOIN TabelBedrijfControle ON TabelControleSubtaken.TaakId = TabelBedrijfControle.Id
ORDER BY TabelControleSubtaken.DatumRealisatie;