【问题标题】:DB2 SQL Using a set of clauses from this years sales to find out what the Client purchased last yearDB2 SQL 使用今年销售的一组子句找出客户去年购买了什么
【发布时间】:2017-03-28 12:22:54
【问题描述】:

DB2 SQL 使用一组子句,我得到了特定交易的结果。

现在我正在尝试(使用存在的位置)查看同一张表并匹配 Part_num、Customer_Name 和 Date(日期 - 1 年)以获得相同零件/客户的前几年销售额。

我的最终结果只是给我那些客户编号和零件与今年销售额相匹配的前几年的交易。我似乎无法让它工作,但我怀疑可能有更简单的方法。

Select Part_Num, Customer_Num,Start_Date, End_Date 
from TableA
Where SalesNumber = A
)as A

WHERE (EXISTS
        (

SELECT Part_Num, Customer_Num,Start_Date, End_Date from Table A )AS B

where B.Part_Num = A.PArt_num and B.Customer_Num = A.Customer_Num and date(A.Start_date) = year(B.Start_Date - 1 year)

我确定我错了。有什么想法吗?

【问题讨论】:

  • 样本数据和期望的结果将阐明您要做什么。
  • 使用特殊销售编号“DOG”匹配 Client_Number 和 Part_Num 的所需结果,如果我有客户“XYZ”并且他们购买了上一年示例中匹配 Customer_num 和 Part_number 的所有先前销售在 start_date 2017 年 1 月 2 日销售编号“DOG”下的“123”我想拉出所有在销售编号“DOG”下购买任何东西的客户,然后我想找出这些客户根据前一年为完全相同的零件支付的费用那个 Start_Date - 1 年

标签: sql db2


【解决方案1】:

试试这个(但请下次努力……):

SELECT Part_Num
    ,Customer_Num
    ,Start_Date
    ,End_Date
FROM TABLE A    
WHERE EXISTS (
            SELECT Part_Num
                ,Customer_Num
                ,Start_Date
                ,End_Date
            FROM TABLE B 
            WHERE B.Part_Num = A.PArt_num
            AND B.Customer_Num = A.Customer_Num
            AND YEAR(A.Start_date) = YEAR(B.Start_Date) - 1 )

【讨论】:

  • 感谢并感谢您的反馈,我已经尝试了许多不同的变体(而且我对所有这些都是新手)并且可能错过了这个配置运行它并得到消息:读取超时。 ERRORCODE=-4499,SQLSTATE=08001
猜你喜欢
  • 2014-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多