Sql JOIN дает повторные reocrds ?
Привет,
Я создал sp для некоторого вывода следующим образом, но я получаю повторные записи из своего sp. Я думаю, что я ставлю неправильные соединения в свой sp. Пожалуйста, решите мою проблему.
ALTER procedure [dbo].[GetSupplierToVendorDetails] @did varchar(50) as begin SELECT ROW_NUMBER() OVER(ORDER BY stvd.SrNo) AS SrNo, stvd.Product_Id, p.Product_Name, stvd.Quantity, vcd.Quantity AS DispatchedQty FROM Tbl_Dispatch_SupplierToVendor_Details AS stvd INNER JOIN Tbl_ProductMaster AS p ON stvd.Product_Id = p.Product_Id INNER JOIN Tbl_Dispatch_VendorToClient AS vc ON stvd.SupplierToVendor_Id = vc.SupplierToVendor_Id INNER JOIN Tbl_Dispatch_VendorToClient_Details AS vcd ON vcd.VendorToClient_Id = vc.VendorToClient_Id WHERE (stvd.SupplierToVendor_Id = @did)
SrNo Product_Id Product_Name Quantity DispatchedQty 1 TVP2 Bearing rod 400 200 2 TVP2 Bearing rod 400 300 3 TVS1 shaft 500 200 4 TVS1 shaft 500 300
И я получаю результат, как указано выше. Но освобожденная из пут, как следующие
SrNo Product_Id Product_Name Quantity DispatchedQty 1 TVP2 Bearing rod 400 200 2 TVS1 shaft 500 300
Ниже приведено изображение структуры таблицы:
[Изображение Структуры Таблицы]
Что я уже пробовал:
ALTER procedure [dbo].[GetSupplierToVendorDetails] @did varchar(50) as begin SELECT ROW_NUMBER() OVER(ORDER BY stvd.SrNo) AS SrNo, stvd.Product_Id, p.Product_Name, stvd.Quantity, vcd.Quantity AS DispatchedQty FROM Tbl_Dispatch_SupplierToVendor_Details AS stvd INNER JOIN Tbl_ProductMaster AS p ON stvd.Product_Id = p.Product_Id INNER JOIN Tbl_Dispatch_VendorToClient AS vc ON stvd.SupplierToVendor_Id = vc.SupplierToVendor_Id INNER JOIN Tbl_Dispatch_VendorToClient_Details AS vcd ON vcd.VendorToClient_Id = vc.VendorToClient_Id WHERE (stvd.SupplierToVendor_Id = @did)
Tomas Takac
Очевидно, что это последнее соединение с Tbl_Dispatch_VendorToClient_Details, которое вызывает у вас проблемы. Вам нужно проанализировать данные, чтобы выяснить, почему.
Veeshal Mali
Я анализирую и заменяю это соединение другими соединениями. Но выход тот же, сэр...
jamuro77
Не могли бы вы добавить структуру таблиц, связанную с вашим запросом? Если нет,то это трудно понять...
Veeshal Mali
Ниже приводится изображение структуры таблицы, сэр...
нажмите на изображение
F-ES Sitecore
У вас есть две записи в таблице Tbl_Dispatch_VendorToClient_Details для этого VendorToclient_id, поэтому вы генерируете две строки соединения. Либо данные ошибочны, либо в Tbl_Dispatch_VendorToClient_Details есть что-то, что вам нужно использовать, чтобы определить, к какой из строк вы хотите присоединиться, то есть к строке "200" для несущего стержня, а не "300".