2015-09-17 2 views
0
CREATE DEFINER=`sqladmin`@`%` PROCEDURE `sp_getContainerSize`(IN P_ProjectId INT, IN P_CategoryName VARCHAR(45)) 
BEGIN 
SELECT ContainerName,LocationPath,ContainerDesc,ContainerSize,categoryId, ContainerUsed,ContainerSize-ContainerUsed as free,concat(round(100*((ContainerSize-ContainerUsed)/ContainerSize),2), '%') as PercentageFreeContainer 
FROM Container 
inner join Location on Container.locationId=Location.locationId  
where projectID=P_ProjectId;  
END 

В нем говорится, что моя категорияId неоднозначна - могу ли я спросить, почему?categoryID неоднозначно mysql

+2

Это означает, что categoryid присутствует как в контейнере, так и в таблице местоположения. Префикс его с именем таблицы в предложении select, таким как Container.CategoryId – Harsh

+0

thx много. Решена проблема: P –

ответ

0

Чтобы устранить эту проблему, вам нужно использовать псевдоним для таблицы. следовательно, ваш запрос будет следующим:

SELECT a.ContainerName,a.LocationPath,a.ContainerDesc, 
a.ContainerSize,a.categoryId,a.ContainerUsed,a.ContainerSize-a.ContainerUsed as free, 
concat(round(100*((a.ContainerSize-a.ContainerUsed)/a.ContainerSize),2), '%')as PercentageFreeContainer 
FROM Container a 
inner join Location b on a.locationId=b.locationId  
where a.projectID=P_ProjectId ; 
Смежные вопросы