gpt4 book ai didi

sql-server-2000 - 关于英文查询 - 请求帮助

转载 作者:行者123 更新时间:2023-12-02 05:14:15 26 4
gpt4 key购买 nike

我在印度塔塔研究开发与设计中心担任研究员。我正在探索可用的数据库自然语言接口(interface)。在探索 MS English Query 时,我发现某些类型的关系没有给出适当的答案。

我们的架构如下所示:

Schema: 
Customer ( customer_id , customer_name, customer_address)
Transaction ( transaction_id , customer_id_1, customer_id_2, amount)

CUSTOMER
cuctomer_id customer_name customer_address
1 John abc
2 Rohit pqr
3 Mark xyz

TRANSACTION
transaction_id customer_id_1 customer_id_2 amount
1 1 2 200
2 1 3 300
3 2 1 300

此处,customer_id_1 和 customer_id_2 引用 Customer.customer_id。一个表的两个以上属性引用另一个表中相同的主键属性。

查询:“给我 John 和 Rohit 之间的所有交易”

我们制作的实体是Customer和transaction;对于给定的英文查询,客户和交易之间建立了以下关系-

Relationship Type : Noun Verb 
Relationship: Transaction are
Preposition Clause: between Customer(customer_id_1)
Preposition Clause: and Customer_1(customer_id_2)

这里我们定义了两个不同的客户角色(通过2个join path-customer_id_1和customer_id_2)

我们期望的输出是 trasaction_id 为 1 和 3 的交易,但它仅加入 customer_id_1 并给出结果为

Expected Output- 
transaction_id customer_id_1 customer_id_2 amount
1 1 2 200
3 2 1 300

Actual Output-
transaction_id customer_id_1 customer_id_2 amount
1 1 2 200
2 1 3 300

发生这种情况是因为默认和我们在介词子句中定义的和之间的歧义..

我们也尝试过建立另一种关系

1) 
Relationship Type : Noun Verb
Relationship: Transaction are
Preposition Clause: by Customer(customer_id_1)
Preposition Clause: to Customer_1(customer_id_2)
2)
Relationship Type : Noun Verb
Relationship: Transaction are
Preposition Clause: by Customer(customer_id_2)
Preposition Clause: to Customer_1(customer_id_1)

我们期望的输出是 trasaction_id 为 1 和 3 的交易,这里它同时加入了 customer_id_1 和 customer_id_2,但是只使用了关系1,并没有同时使用1和2,所以输出如下

Expected Output- 
transaction_id customer_id_1 customer_id_2 amount
1 1 2 200
3 2 1 300

Actual Output-
transaction_id customer_id_1 customer_id_2 amount
1 1 2 200

是否有解决方法来创建关系,使 MSEQ 能够理解上述查询?希望有人通过建议一些适当的解决方案来帮助我们。

最佳答案

我看不懂你写的那么长。如果您能提供您所写的确切查询,那将是有意义的。不管怎样,试试下面的查询,它会起作用。

SELECT [Transaction_Id]
,[Customer_Id_1]
,[Customer_Id_2]
,[Amount]
FROM [TEST].[dbo].[Transaction] WHERE ((Customer_Id_1 = 1 AND Customer_Id_2 = 2)OR(Customer_Id_1 = 2 AND Customer_Id_2 = 1))

关于sql-server-2000 - 关于英文查询 - 请求帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com