【问题标题】:SQL query for Finding data with join or where within same table from multi tables用于从多个表中查找具有联接或同一表中的数据的 SQL 查询
【发布时间】:2022-01-26 09:49:06
【问题描述】:

对不起,我无法解释这个问题

我有一个问题,我需要将 4 个表连接在一起以查找一些信息。我正在使用内部联接,它为我带来了正确的数据,但重复的行具有微小的变化数据。可以说我正在获取这些数据

See the Table here

如果我们看看结果。在最后 4 行,我们可以注意到类似的结果。我想要实现的是将这 4 行转换为 2 行。

我只想要帐户 id = 车辆帐户 id 和 110 的行。我想要这两行。我写的join查询如下

 select Distinct vh.VehicleNo,jd.AccountID, tr.ID,jd.Memo,je.Description, jd.Cr,jd.Dr ,jd.Detail, je.JEntryId,      je.ExpenseID from tbl_JDetail jd
 inner join tbl_JEntry je on je.JEntryId = jd.JEntryID
 inner join tbl_Trip tr on tr.ID = je.RefID
 inner join tbl_Vehciles vh on vh.VID = tr.VehicleID

我真的需要实现这一点。任何帮助将不胜感激我该如何实现。我想要的是让我用简单的语言编写查询

查询应该首先在 jdetail 中找到 accountid = 110 的行。然后获取它的 jentryid 。然后在 Jentry 中它应该找到 triid 并且在行程表中我有车辆 ID。 Vehicle 表包含车辆 ID。

那么查询应该在jdetail中找到具有相同jentryid和vehicleaccountid的

我需要 jdetail accountid = 110 和 accountid = vehicle.accountid

车辆关系为 Jdetail > Jentry > Trip > Vehicle

我希望我足够清楚

【问题讨论】:

  • 您是否尝试过GROUP BY 需要将结果分组的字段?
  • 是的,我做到了,但没有达到结果
  • 那么,你只需要“jdetail has accountid = 110”的结果吗?
  • 对,我需要 jdetail accountid = 110 and accountid = vehicle accountid 其关系是 Jentry > Trip > Vehicle
  • 只需在查询中添加 where 子句:..... where vehicle.accountid=110

标签: mysql sql-server


【解决方案1】:

请在您的问题中添加支持信息(创建表语句、示例数据、当前输出和所需输出)。由于您没有提供支持信息,因此我无法对此进行测试。根据您的描述,这是我的“最佳猜测”。

select Distinct vh.VehicleNo,jd.AccountID, tr.ID,jd.Memo,je.Description, jd.Cr,jd.Dr ,jd.Detail, je.JEntryId,      je.ExpenseID
from tbl_JDetail jd
inner join tbl_JEntry je
    on je.JEntryId = jd.JEntryID
inner join tbl_Trip tr
    on tr.ID = je.RefID
inner join tbl_Vehciles vh
    on vh.VID = tr.VehicleID
    and vh.AccountID = jd.AccountID
where jd.AccountID = 110

【讨论】:

    【解决方案2】:

    使用 2 个 CTE 解决了这个问题。 CTE1 使用 account ID = 110 查找所有记录的 jentry_id

    和 CTE2 在 cte.JEntryId = jd.JEntryID 上通过内连接 cte 找到所有需要的数据

    它解决了我所有的问题..

    谢谢。希望对其他人也有帮助

    【讨论】:

    • 这不是答案。您没有显示解决方案,只是对如何解决它的模糊描述。请使用所有要求的信息更新您的问题,并更新此答案以显示确切的解决方案
    • 很抱歉给您带来了困惑。我会尽快添加的
    猜你喜欢
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多