1

请,我有这个在 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");

谢谢!

4

2 回答 2

1

似乎它指的是数据库名称。所以就像'e2013'是一个数据库,'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
于 2013-05-21T11:21:47.323 回答
1

我认为 Angelo 已经解决了这个问题,但请注意以下内容并不等同:

SUM(lhd.sasih) - SUM(lhd.sasid)
SUM(lhd.sasih - ldh.sasid)

如果任一列可以为空,则这些表达式可能会返回不同的结果:聚合忽略空值。例如,如果第一行是 {10, null} 并且第二行是 {100, 50} 第一个返回 10 + 10 - 50;第二个 100 - 50。

于 2013-05-21T11:44:36.940 回答