选择distinct和iif不提供预期结果

khbbv19g  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(284)

我需要一些帮助与sql查询访问,因为我是一个新手。
我有一张table tbl_FC_Data 数据行中包含一个由公司的预测日期quantity by part number by future month标记的预测。因此,一个公司的单个预测将包含每个零件号的未来每个月的一行。以下是示例数据:

Part_Number  Company_Code  Qty  Data_Month  Date_of_FC
9D0094-2      EAIL1         5   08/01/20    06/01/20
9D0094-2      EAIL1         7   09/01/20    06/01/20
9D0094-2      EAIL1         8   10/01/20    06/01/20
9D0166-24     EAIL1         2   08/01/20    06/01/20
9D0197-1      EAIL1         2   08/01/20    06/01/20
9D0094-2      EAIL1         6   08/01/20    07/01/20
9D0094-5      EAIL1         8   08/01/20    07/01/20
9D0166-10     EAIL1         9   08/01/20    07/01/20
9D0166-24     EAIL1         2   08/01/20    07/01/20
9D0094-2      EAIL1         3   08/01/20    07/01/20
9D0094-4      EAIL1         4   08/01/20    07/01/20

我的目标是比较公司的两个预测,以确定零件号是包含在两个预测中,还是仅包含在第一个或第二个预测中。以下是示例结果:

Part_Number  Company_Code   First_Date_Match  Second_Date_Match
9D0094-2       EAIL1               Y            Y
9D0094-4       EAIL1               N            Y
9D0094-5       EAIL1               N            Y           
9D0166-10      EAIL1               N            Y
9D0166-24      EAIL1               N            Y
9D0197-1       EAIL1               Y            N

感谢您的帮助。
我尝试了几种sql变体,包括
GROUP BY Part_Number . 下面是我最新的尝试使用 SELECT DISTINCT . 当 Part_Number 出现在两个 Date_of_FC 我没有收到一封信 First_Date_MatchY 和一个 Second_Date_MatchY .

SELECT DISTINCT tbl_FC_Data.Part_Number, IIf([tbl_FC_Data]![Date_of_FC]=#7/1/2020#,"Y","N") AS 
First_Date_Match, IIf([tbl_FC_Data]![Date_of_FC]=#6/1/2020#,"Y","N") AS Second_Date_Match
    FROM tbl_FC_Data
    WHERE (((tbl_FC_Data.Company_Code)="EAIL1") AND ((tbl_FC_Data.Date_of_FC)=#7/1/2020#)) OR 
        (((tbl_FC_Data.Date_of_FC)=#6/1/2020#))
    ORDER BY tbl_FC_Data.Part_Number;
uurity8g

uurity8g1#

SELECT tbl_FC_Data.Part_Number,
    IIf(MAX([tbl_FC_Data]![Date_of_FC]) = #7/1/2020#,"Y","N") AS First_Date_Match,
    IIf(MIN([tbl_FC_Data]![Date_of_FC]) = #6/1/2020#,"Y","N") AS Second_Date_Match
FROM tbl_FC_Data
WHERE tbl_FC_Data.Company_Code = "EAIL1"
    AND tbl_FC_Data.Date_of_FC IN (#7/1/2020#, #6/1/2020#)
GROUP BY tbl_FC_Data.Part_Number
ORDER BY tbl_FC_Data.Part_Number;

相关问题