gpt4 book ai didi

sql - 为什么此 SQL 不能作为存储过程运行,但作为常规查询运行良好?

转载 作者:行者123 更新时间:2023-12-03 01:27:03 27 4
gpt4 key购买 nike

TrackingData 表位于名为 Tracking 的数据库内。存储过程在同一数据库内运行。我通过查询获取数据,但通过 SP 获取不到数据。

SELECT *
FROM
dbo.TrackingData
LEFT OUTER JOIN SSMain.dbo.EmailCampaignTracking ON (dbo.TrackingData.emailCampaginTrackingID = SShMain.dbo.EmailCampaignTracking.emailCampaignTrackingID)
LEFT OUTER JOIN SSMain.dbo.EmailCampaigns ON (SSMain.dbo.EmailCampaignTracking.emailCampaignID = SSMain.dbo.EmailCampaigns.emailCampaignID)
LEFT OUTER JOIN SpinStitchMain.dbo.EmailListAddresses ON (SSMain.dbo.EmailCampaignTracking.emailAddressID = SSMain.dbo.EmailListAddresses.emailAddressID)
WHERE
dbo.TrackingData.lattitude = 33.8322 AND
dbo.TrackingData.longitude = -78.6491 and
dbo.TrackingData.projectID = 131

CREATE PROCEDURE dbo.sel_Track_HitsByLatLong(
@latitude decimal(18,15),
@longitude decimal(18,15),
@projectID int
)
AS
BEGIN
SELECT *
FROM
dbo.TrackingData
LEFT OUTER JOIN SSMain.dbo.EmailCampaignTracking ON (dbo.TrackingData.emailCampaginTrackingID = SSMain.dbo.EmailCampaignTracking.emailCampaignTrackingID)
LEFT OUTER JOIN SSMain.dbo.EmailCampaigns ON (SSMain.dbo.EmailCampaignTracking.emailCampaignID = SSMain.dbo.EmailCampaigns.emailCampaignID)
LEFT OUTER JOIN SSMain.dbo.EmailListAddresses ON (SSMain.dbo.EmailCampaignTracking.emailAddressID = SSMain.dbo.EmailListAddresses.emailAddressID)
WHERE
dbo.TrackingData.lattitude = @latitude AND
dbo.TrackingData.longitude = @longitude and
dbo.TrackingData.projectID = @projectID
END

编辑:

结果数字末尾添加了零:33.832200000000000

以前从未发生过这种情况,因为不确定发生了什么变化。当程序运行时它们会被添加。

最佳答案

我敢打赌这与转换问题有关。您的表格中的 TrackingData.lattitude 和 TrackingData.longitude 真的是十进制(18,15)吗?

您能否将 SP 中的参数替换为第一个查询中的两个值并得到答案?如果是这样,那么当您传入参数时,它就在转换中的某个位置。

关于sql - 为什么此 SQL 不能作为存储过程运行,但作为常规查询运行良好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1931669/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com