【问题标题】:Translating English Language into Formulae of Sentential Logic in SQL?将英语语言翻译成 SQL 中的句子逻辑公式?
【发布时间】:2014-07-17 18:45:30
【问题描述】:

我有一组大约 30 条英语句子规则,用于确定工作时间是标准时间、加班时间还是双倍时间。

我需要制作一张员工一天中的总小时数表,并根据员工所属的工会按标准、加班或双倍时间对它们进行相应的拆分。

我在想,如果我可以将英语规则转换为句子逻辑公式,那么我就可以创建一个真值表来传递员工行,以确定哪些时间是标准时间、加班时间或双倍时间。

有人对我如何完成这项任务有任何想法/示例吗?我愿意接受所有建议。

感谢所有回复, 迈克

以下是示例规则和示例行;

  1. 规则:ST 为计划轮班内的所有工作时间付费
  2. 行数:

数据行:

id      create_date         last_update         created_by  last_updated_by     deleted_by  WORKORDERNUMBER     NAME        EMPLOYEENUMBER      TIMEIN          TIMEOUT
177     7/16/2014 17:50     7/16/2014 17:50     5           5                   0           167320002           Joe Doe     56                  7/16/2014 1:23  7/16/2014 3:23
178     7/16/2014 17:50     7/16/2014 12:21     5           5                   0           167320002           Joe Doe2    137                 7/16/2014 1:23  7/16/2014 3:23
179     7/16/2014 17:50     7/16/2014 12:21     5           5                   0           167320002           Joe Doe3    108                 7/16/2014 1:23  7/16/2014 3:23

【问题讨论】:

  • 这里没有足够的信息来提供很多帮助。我们需要 ddl(创建表)和示例数据(插入),或者一个 sqlfiddle。然后解释您期望的输出以及原因。
  • 这是在 tsql 中完成的一项艰巨任务。我曾经在一家制作考勤软件的软件公司工作。他们聘请了一位高级开发人员,他唯一的工作就是创建/增强/维护软件的“工资规则”。您提到了“标准、超时或双倍”……我以前的公司支持 100 多个不同的类别。那时,逻辑是用 C 编写的(我认为后来迁移到 VB6)并从客户端应用程序处理。对于这种类型的处理,我强烈考虑使用 CLR 函数(服务器端)。
  • DMason,在SQL中完成的原因是上面所有的Emp Time Rows都是从现场的时间收集应用程序从所有移动设备到移动数据库,然后从移动数据库拉到SAP数据库。该过程必须在每晚的 Proc/Func/Trig 中进行,以便第二天早上的工资单可以批准或不批准 ST/OT/DT 工资。很高兴知道你明白我想要做什么。感谢您的回复,有什么想法吗?
  • 感谢 Siyual,让这些行看起来很漂亮。
  • Mike,SAP 肯定有一个 API 可以用于这种类型的导入。对吗?

标签: sql sql-server logic formula truthtable


【解决方案1】:

我能够通过以下方式完成我的任务;

  1. 创建一个包含规则以及句子逻辑公式的表格。
  2. 我创建了另一个表来保存 Union Local、Local Schedule、AppliedRules 的唯一时间表
  3. 根据本地员工 ID 选择所有应用规则公式的函数,作为返回表 I 循环和验证代表公式部分的每个变体的变量。
  4. 循环所有时间条目记录并收集函数、插入拆分行等所需的附加数据的过程...

此解决方案完美运行,通过将英文规则和相关的句子逻辑公式添加到规则表中,可以轻松添加规则。

DMason 极大地启发了我跳出框框思考。谢谢 DMason!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    相关资源
    最近更新 更多