【问题标题】:union query to combine fields联合查询以组合字段
【发布时间】:2012-10-16 18:52:29
【问题描述】:

我不知道 SQL,所以我希望有人可以为我提供复制和粘贴的 SQL,以便将所有不同的单价字段合并到一个名为“merged_unit_price”的字段中。请注意,许多单价值为空,因此我希望空值不要合并。 非常感谢你,纳撒尼尔

SELECT  p.ID AS Part_ID, 
    p.UNIT_PRICE, 
    d.UNIT_PRICE_1, 
    d.UNIT_PRICE_2, 
    d.UNIT_PRICE_3
FROM    tbl_local_SYSADM_PART AS p 
LEFT JOIN SYSADM_DISCOUNT_PRICE AS d 
ON p.ID = d.PART_ID;

【问题讨论】:

  • 合并是什么意思?你想要最低的价值吗?你想把它们加在一起吗?通常这类问题涉及样本数据,例如这是我所拥有的,这是我想要的。目前确实没有足够的信息来明确回答您的问题。
  • 我最初要求为每个值输出一个单独的记录,但理想情况下,查询只会输出最低值,并且该字段将被称为“lowest_unit_price”。我最初打算使用第二个查询来运行“min”函数,以获得最低单价的所需输出。谢谢!

标签: ms-access


【解决方案1】:

首先在您的查询中确保从您的数据集中排除 Null 值。不记得 Access SQL 是使用 Null 还是 Nothing,所以尝试一种方式,看看是否出错。

SELECT  p.ID AS Part_ID, p.UNIT_PRICE, d.UNIT_PRICE_1, d.UNIT_PRICE_2, d.UNIT_PRICE_3
FROM    tbl_local_SYSADM_PART AS p 
  LEFT JOIN SYSADM_DISCOUNT_PRICE AS d ON p.ID = d.PART_ID;
WHERE p.UNIT_PRICE <> Nothing OR p.UNIT_PRICE_1 <> NOTHING OR p.UNIT_PRICE_2 <> NOTHING OR p.UNIT_PRICE_3 <> Nothing

另外,我建议您了解更多关于 SQL 语句的一般知识和访问权限,因为您将自己限制为只有 4 个UNIT_PRICE,并且最终将不得不增加您的表字段签名。如果是我,我会将这个表拆分为 Join Table,这样你就可以拥有多个 Part_ID 和多个 UNIT_PRICE。目前您受限于 1 个Part_ID 并且象征性地只有一个UNIT_PRICE(将 4 个价格字段计为 1 条记录)。

【讨论】:

  • @Nathaniel_613:虽然我上面的查询没有连接 Unit_Price 字段,但在 Access 中,您可以使用 &amp;+ 简单地将所需字段连接到单个返回字段中,不能马上记住它是什么,就像我最近做 MS-SQL 和 Access 开发一样。
猜你喜欢
  • 2010-09-06
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多