请,我有这个查询在sql
select sum(lhd.sasih)-sum(lhd.sasid) as sasi,lhd.kartllg as kartllg
from e2013..levizjehd lhd,supersick_db..produkt as prod
where lhd.kartllg=prod.kodfinance
group by lhd.kartllg
我需要写它的等价但是在mysql中...... 我收到这个错误:
Invalid object name 'e2013..levizjehd'.
我需要的是在mysql查询中翻译它,但我不知道...在sql中代表什么。 我很感激你的帮助。
我如何连接
$host="192.168.10.250\\f501";
$uid="sa";
$passVal="";
$database="SUPERSICK_DB";
$objConnect = odbc_connect("Driver={SQL Server};Server=$host;Database=$database;",$uid, $passVal ) or die("Connection could not established");
谢谢!
答案 0 :(得分:1)
好像是在引用数据库名称。所以像'e2013'是一个DB而'supersick_db'是另一个。第一个包含'levizjeh'表,另一个包含'produkt'表。
如果你在同一个mysql中有两个表,那么你可以跳过这个名字和..一起。
SELECT SUM(lhd.sasih)-SUM(lhd.sasid) AS sasi, lhd.kartllg AS kartllg
FROM levizjehd lhd, produkt prod
WHERE lhd.kartllg = prod.kodfinance
GROUP BY lhd.kartllg
您可以像这样改进查询:
SELECT SUM(lhd.sasih)-SUM(lhd.sasid) AS sasi, lhd.kartllg AS kartllg
FROM levizjehd lhd
INNER JOIN produkt prod ON lhd.kartllg = prod.kodfinance
GROUP BY lhd.kartllg
答案 1 :(得分:1)
我认为Angelo已经涵盖了这个问题,但请注意以下内容并不等同:
SUM(lhd.sasih) - SUM(lhd.sasid)
SUM(lhd.sasih - ldh.sasid)
如果任一列可以为空,这些表达式可能会返回不同的结果:aggregates ignore nulls。例如。如果第一行是{10,null}而第二行是{100,50},第一行返回10 + 10 - 50;第二个100 - 50。