ms访问查询以将日期表连接到时间表表

时间:2017-03-31 22:27:49

标签: ms-access join

我的最终结果是多名员工的报告,其中包括在日期范围内工作的天数。在我的报告中,我需要在报告的范围内显示该员工是否工作的所有日期。

所以我有一张桌子,上面有每个工作日期和每个小时的工作时间。我还创建了一个日期遥远的表格。我想我需要一个连接两个表的查询,并将日期范围的所有日期 - 将被提示。添加到员工工作时间表中。

有没有人有任何想法如何加入这些表格,并在两周内获得每位员工的所有日期?

第一个表日期只有1列,其中包含未来的日期。

第二个表有Empl名称,工作日期和工作小时数。

1 个答案:

答案 0 :(得分:0)

您需要使用嵌套查询(也称为子查询)来创建员工和日历日的所有组合,然后您可以向左侧第二个表(时间表表)。

    public static void AppendInvariant(this StringBuilder builder, int value)
    {
        // Deal with negative numbers
        if (value < 0)
        {
            builder.Append('-');
            uint uint_value = uint.MaxValue - ((uint)value) + 1; //< This is to deal with Int32.MinValue
            AppendInvariant(builder, uint_value);
        }
        else
        {
            AppendInvariant(builder, (uint)value);
        }
    }

    public static void AppendInvariant(this StringBuilder builder, uint value)
    {
        if (value == 0)
        {
            builder.Append('0');
            return;
        }

        // Pad out space for writing.
        int length = UintLength(value);
        builder.Append('0', length);
        length = builder.Length;

        uint tmp_value;
        do
        {
            tmp_value = value;
            value /= 10;
            builder[--length] = (char)('0' + (tmp_value - value * 10));
        } while (value > 0);
    }

    private static int UintLength(uint i)
    {
        if (i < 100000)
        {
            if (i < 10) return 1;
            if (i < 100) return 2;
            if (i < 1000) return 3;
            if (i < 10000) return 4;
            return 5;
        }
        else
        {
            if (i < 1000000) return 6;
            if (i < 10000000) return 7;
            if (i < 100000000) return 8;
            if (i < 1000000000) return 9;
            return 10;
        }
    }