【发布时间】:2014-05-27 09:25:03
【问题描述】:
我需要手动构建一个复杂的 SQL 语句(至少对我来说很复杂!)
我有三个表,下面是结构。
客户表: 客户 ID、客户名称、地址、关税*
APRW14_FFA68878_Calls: CLI、ChargeCode、持续时间、时间段
(关税名称) – 具有不同关税的多个表 ChargeCode、Peak、Off-Peak、Weekend、Setup、Minimum
*每个客户都有自己的关税,如客户表中所定义 - 然后有一个相应的关税表,其中包含关税详细信息。
我正在尝试做的是写一个动态语句,以便查询从客户表中查找关税名称,然后从相应的关税表中提取数据。
这是我目前的代码。
UPDATE [APRW14_FFA68878_Calls]
SET [APRW14_FFA68878_Calls].[Sell Price] = [*Query to pull back tariff name from Customer table here*].[Peak]/60*[APRW14_FFA68878_Calls].[Duration (secs)]
FROM [Test].[dbo].[DaisyRates_May2014]
INNER JOIN [DaisyBilling].[dbo].[APRW14_FFA68878_Calls] on [DaisyBilling].[dbo].[APRW14_FFA68878_Calls].[ChargeCode] = [Test].[dbo].[*Query to pull back tariff name from Customer table here*].[Chargecode]
我已经在代码中添加了“Query to pull back the duty name from Customer table here”在我需要根据 Customer 表拉回关税名称的代码中。
我希望这是有道理的,非常感谢任何帮助。
【问题讨论】:
-
您使用的是什么关系型数据库?看起来它可能是 SQL Server。此外,每个关税都有一个表格似乎并不是构建数据库的正确方法。你能修改数据库结构吗?
-
尝试选择正确的售价。然后,您应该能够将其转换为更新,而无需子查询。大多数更新都可以首先编写为等效的选择,这样可以更轻松地可视化查询(imo)
-
谢谢,但如果我能选择正确的售价,那么我不会有任何问题。您能否提供一个示例,说明我如何根据动态关税值拉回正确的售价。谢谢
标签: sql sql-server dynamic lookup