Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何使用Vertica DB将表连接到视图?_Sql_Vertica - Fatal编程技术网

Sql 如何使用Vertica DB将表连接到视图?

Sql 如何使用Vertica DB将表连接到视图?,sql,vertica,Sql,Vertica,早上好/下午好!我希望有人能帮我做一些简单的事情 诚然,我不是最强的SQL查询设计器。这就是说,我花了几个小时的时间在键盘上敲打脑袋,试图让一个看似简单的三方连接正常工作 注意:我正在查询Vertica数据库 我的问题是: SELECT A.CaseOriginalProductNumber, A.CaseCreatedDate, A.CaseNumber, B.BU2_Key as BusinessUnit, C.product_number_desc as ModelNumber FRO

早上好/下午好!我希望有人能帮我做一些简单的事情

诚然,我不是最强的SQL查询设计器。这就是说,我花了几个小时的时间在键盘上敲打脑袋,试图让一个看似简单的三方连接正常工作

注意:我正在查询Vertica数据库

我的问题是:

SELECT A.CaseOriginalProductNumber, A.CaseCreatedDate, A.CaseNumber, B.BU2_Key as BusinessUnit, C.product_number_desc as ModelNumber
  FROM  pps_sfdc.v_Case A
  INNER JOIN reference_data.DIM_PRODUCT_LINE_HIERARCHY B
    ON  B.PL_Key = A.CaseOriginalProductLine
  INNER JOIN reference_data.DIM_PRODUCT C
    ON  C.product_line_code = A.CaseOriginalProductLine
  WHERE B.BU2_Key = 'XWT'
  LIMIT 20
我有一个视图(v_Case),我正试图连接到另外两个表,以便从每个表中查找一个值。上面的查询返回除最后一列之外的所有内容的相同数据(见下文)。这就像是在迭代最后一列以提取唯一的条目,有点像“groupby”子句。应该发生的是,我为该记录获取了具有特定“BusinessUnit”和“ModelNumber”的唯一行

DUMEPRINT   5/2/2014 8:56:27 AM 3002845327  JJT Product 1
DUMEPRINT   5/2/2014 8:56:27 AM 3002845327  JJT Product 2
DUMEPRINT   5/2/2014 8:56:27 AM 3002845327  JJT Product 3
DUMEPRINT   5/2/2014 8:56:27 AM 3002845327  JJT Product 4
我根据这篇文章为我的解决方案建模:

我做错了什么


感谢您提供的任何帮助。

数据问题。故障排除的一般规则这些是每个记录的不同列(在本例中,C.product\U number\U desc as ModelNumber)通常是问题将要出现的地方…以及我为什么向您指出dim\U产品

如果您收到重复项,下面的查询将有助于确定此表是否为您提供了问题。请记住,此语句中的键可以是多个字段…无论您在什么位置加入表:

Select key,count(1) from table group by key having count(1)>1
未来的其他选项…不要假设这是您的代码,像这样的重复项几乎总是指向脏数据(另一个选项是由于键不正确而导致交叉连接)。如果您注释掉“c”表和select子句中引用的列,您将收到一行…因此您的副本来自此处的“c”表


祝你好运

+1问得好。不过,这看起来是数据驱动的,这有助于解决问题,而不是真正的答案。C.产品线代码似乎有重复项。。。按计数(1)>1的产品线代码从参考数据中选择产品线代码、计数(1)。那里的代码将通过product_line_代码来判断dim_product表中是否存在重复项…如果您得到0个结果,则表是干净的…超过1个结果将表明此连接是重复项出现的地方,并显示导致此问题的product_line_代码。RE:12这确实是问题所在。“DIM_PRODUCT”表不是一个真正的查找表-在那里,到处都是重复的条目。哈哈!我想我现在找到了正确的表格(有数百张表格),而且这些东西似乎在工作——至少目前是这样。谢谢你给我指出了正确的方向。我将把评论变成一个答案……我从几年的桌面支持中了解到,代码和系统的功能与它们应该的一样,但脏数据或用户试图做系统不打算做的事情是问题的根本原因。如果确定联接良好,请检查数据是否存在重复项。