Tôi khá chắc rằng lý do là sự nhầm lẫn giữa UserId và o.UserId.
Trong ngữ cảnh truy vấn, nó không biết rằng bạn có nghĩa là đối số cho sp. Thay đổi tên của đối tượng thành một cái gì đó như "arg_UserId" và thay thế tên đó trong truy vấn nếu thích hợp.
Bạn cũng có thể đơn giản hóa cú pháp truy vấn của mình. SELECT
bên ngoài các câu lệnh case là thừa. Ngoài ra, giả sử rằng các liên kết đến Quận và Thành phố luôn là 1-1, bạn có thể viết lại truy vấn dưới dạng:
SELECT op.OrderId, O.Number, SUM(op.Price) Price,
CONCAT(A.Detail, ' ', C.Name, ' / ', Ci.Name) AS UserAddress,
(CASE WHEN O.Status =0 THEN 'Onay Bekliyor' WHEN O.Status =1 THEN 'Onaylandı' WHEN O.Status = 2 THEN 'Reddedildi' END) Status,
O.Creation,
(CASE WHEN O.IsDelivered =0 THEN 'Teslim Edilmedi' ELSE 'Teslim Edildi' END) IsDelivered,
group_concat(P.Name) as Product
FROM kobiakinlar.product P JOIN
kobiakinlar.orderproduct op
ON op.ProductId = P.productId JOIN
kobiakinlar.order O
ON O.orderId = op.OrderId JOIN
kobiakinlar.address A ON A.addressId = O.AddressId join
County C
ON C.CountyId = A.CountyId join
City AS Ci
ON C.CityId = Ci.CityId
WHERE O.UserId = arg_UserId
GROUP BY op.OrderId;