2014-03-27 2 views
1

"newbee to modern Databases"질문에 대해 미리 설명하지 마십시오. 그러나 아주 간단한 질문이 있습니다.MYsql의 계산 된 필드

ID Cost_Goods  Sales_Price 
1 100   150 
2 75    95 
3 500   700 

나는 매우 자주 싶습니다 이익에 같이 계산된다 '이익'알고

SELECT Cost_Goods FROM someTable WHERE ID =2; 

조회 수 있다는 사실을 알고 :

SELECT profit FROM someTable WHERE ID =2; 
를 다음 표 감안할 때

여기서 함수를 사용할 수 있음을 알고 있습니다. 하지만 전 레거시 코드를 일부 제한해야합니다. 나는 데이터베이스 자체에 일종의 "계산 필드 (Calculation Field)"를 갖는 방법으로 cmd를 원합니다. 그게 위의 "이익"쿼리 이외에 내가 쿼리 할 수 ​​있도록합니다.

SELECT Cost_Goods, profit FROM someTable WHERE ID =2; 

또는 :

SELECT * FROM someTable ORDER BY profit; 

이 가능합니까?

계산을 전달하는 좀 더 우아한 방법이 있다는 것을 알고 있지만, 내가 작업하고있는 응용 프로그램의 인터페이스는 아주 간단한 쿼리 이외의 것을 허용하지 않습니다. 계산을 변경하려고합니다.

답변

4

열에 추가 할 표를 변경하거나 이상적 일 수는 있지만 어쩌면 그렇지 않을 수도 있습니다. 그러나 이렇게하려면 각 삽입에서 새 필드를 최신으로 유지해야합니다. 이 문제를 제어 할 수 있다면 문제는 아니지만 실제로 돌아 가지 않았을 때 INSERT를 모두 업데이트했다고 생각하면 다시 물러 설 수 있습니다.

나는 그런
CREATE VIEW sales_profit AS SELECT ID, Cost_Goods, Sales_Price, Cost_Goods -Sales_Price AS profit FROM someTable; 

당신이 할 수있는 ... 선호하는 방법은 SQL

SELECT Cost_Goods -Sales_Price AS profit FROM someTable ORDER BY profit 

에서 계산을 할 수 또는 데이터베이스에서보기를 만들 수 있다면 것 같아 ..

SELECT * FROM sales_profit where ID = 2; 
SELECT * FROM sales_profit ORDER BY profit;