gpt4 book ai didi

mysql - SQL 查询添加当前在不同表中的列

转载 作者:行者123 更新时间:2023-11-30 23:44:04 27 4
gpt4 key购买 nike

我是 SQL 新手。我涉猎它,但很容易迷路。无论如何,我有这两个表格,其中包含零件号。其中一个零件号是主键。我想必须是另一个表中的外键。这个另一个表是信息列的地方,我想查询到第一个具有零件号主键的表。我可以设法在第一个表中很容易地显示零件号列,但这对我没有任何好处。我需要一个名为 AverageUnitCost 的列,它与每个零件号的成本直接相关。

SELECT
QALog.QALID, QALog.GroupID, QALog.LogDate, QALog.SONumber,
QALog.PartNumber, QALog.PartNotes, QALog.TravelerQty, QALog.EUser,
QALog.ITID, QALog.TrackingNumber, QALog.MDR, QALog.ExpirationDate,
QALog.PONumber, QALog.ReceiptNo, QALog.ReasonID, QALog.RRNo,
Rejections.NumDiscrp, Rejections.RRID, RejectReason.Reason,
ProductGroups.GroupName, Disposition.Disposition, CI_ITEM.itemcode
FROM QALog
INNER JOIN Rejections
ON QALog.QALID = Rejections.QALID
INNER JOIN RejectReason
ON RejectReason.RRID = Rejections.RRID
INNER JOIN Disposition
ON Disposition.DispositionID = Rejections.DispositionID
INNER JOIN ProductGroups
ON ProductGroups.PGID = QALog.GroupID
INNER JOIN CI_ITEM
ON QALog.PartNumber = CI_ITEM.itemcode
WHERE (QALog.LogDate >= DATEADD(year, - 3, GETDATE()))
AND (QALog.ITID = '3')
AND (RejectReason.GroupID = '0')
OR
(QALog.LogDate >= DATEADD(year, - 3, GETDATE()))
AND (QALog.ITID = '3')
AND (RejectReason.GroupID = '3')
ORDER BY QALog.QALID

最佳答案

假设您有正确的表列关系,您的联接看起来没问题。但是您的 WHERE 条件是错误的,因为 ANDOR 的组合方式。

但是您不需要如此复杂的混合,因为在 OR。所以你可以将其简化为:

WHERE QALog.LogDate >= DATEADD(year, - 3, GETDATE())
AND QALog.ITID = '3'
AND RejectReason.GroupID IN ('0', '3')

关于mysql - SQL 查询添加当前在不同表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52374402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com