如果您只是想破解代码,您可以放心地忽略以下(包括)JOINs:Starting Off 部分。的背景和结果只是作为背景。如果您想查看代码最初的样子,请查看 2015-10-06 之前的编辑历史记录。
最终,我想根据表中可用 GPS 数据的日期时间戳计算发射机(X或Xmit)的内插 GPS 坐标,这些数据SecondTable直接位于表中的观测值的两侧FirstTable。
我的近期目标实现的最终目标是要弄清楚如何最好地加入FirstTable到SecondTable得到这些侧翼的时间点。稍后我可以使用该信息我可以计算中间 GPS 坐标,假设沿等距柱状坐标系进行线性拟合(花哨的话说我不在乎地球是这个比例的球体)。
(A<>B OR A=B)结构。
对于问题 3,我仍然希望得到任何额外的帮助。 要点反映了我认为在个别问题上对我帮助最大的人。
第一表
Fields
RecTStamp | DateTime --can contain milliseconds via VBA code (see Ref 1)
ReceivID | LONG
XmitID | …Run Code Online (Sandbox Code Playgroud) 我有两个员工名单:
List A:
StaffID Supervisor
====================
0001234 NULL
0001235 0001234
0001237 0001234
0001239 0001237
Run Code Online (Sandbox Code Playgroud)
和
List B:
StaffID Supervisor
====================
0001234 NULL
0001235 0001234
0001238 0001235
0001239 0001235
Run Code Online (Sandbox Code Playgroud)
我需要以下输出:
StaffID SupervisorA SupervisorB
===================================
0001234 NULL NULL
0001235 0001234 0001234
0001237 0001234 NULL
0001238 NULL 0001235
0001239 0001237 0001235
Run Code Online (Sandbox Code Playgroud)
请注意,列表 A 和列表 B 中的员工 ID 已合并到一个不重复的列表中,并且我已合并了两个列表之间可能不匹配的两个主管详细信息。
查询不必很好。我在每个列表中有大约 8000 条记录,我会很好地运行它。如有必要,我很乐意在之后进行一些小的 Excel 操作。
我想做一个完整的联接,但联接上的 Access 查询设计器属性窗口允许我从表 A 中选择 ALL 并从表 B 中进行匹配、从表 B 中选择 ALL 并从表 A 中进行匹配,或者仅选择在两个 A 中都匹配的那些和 B。
我确信这很简单,但我很少使用 MS …
我们的一个用户的名称已合法更改,因此我们更改了他们的 Active Directory 用户名以匹配 - 从域\旧名称到域\新名称。但是,当此用户在存储过程中调用 suser_sname() 时,它返回旧名称,而不是新名称。
谷歌搜索让我找到了KB 946358,这表明他们的名字被缓存在服务器上并且没有更新,大概是因为 suser_name() 正在调用 LsaLookupSids。但是,该文章中的解决方法涉及重新启动服务器,即使是这样,我仍然想了解问题所在。
如果我将上下文更改为他们的上下文,则会返回正确的名称:
EXECUTE AS LOGIN = 'domain\newname'
GO
SELECT suser_name() --returns 'domain\newname'
Run Code Online (Sandbox Code Playgroud)
...我会假设这也会调用 LsaLookupSids,因此会返回不正确的名称。我似乎不太了解这里的工作机制。
一些可能重要的观察结果:
此用户在服务器上没有显式登录。但他们是这样做的 AD 组的成员。更改后的名称 (domain\newname) 出现在结果集中exec xp_logininfo 'domain\ADGroupName', 'members';域\旧名称没有。
用户从存储过程中调用 suser_name(),从 Access 2003 MDB 中的直通查询调用。
过去我们更改了大量用户的帐户名称,但仅在上周才发现此问题(上周进行了两次更改,似乎都出现了此问题)。
服务器在 Windows 2008 R2 数据中心版上运行 Sql Server 2008 SP3 x64。
这是怎么回事?作为 DBA,我可以做什么或者我可以在哪里解决这个问题?
我正在尝试按照以下方式编写查询:
select *
from tbl
where
col1 = 1
and col2 = 2
and col3 = 3
order by
...
;
Run Code Online (Sandbox Code Playgroud)
我首先想要所有 3 个WHERE条件匹配的所有结果(3/3),然后是任何 2 个条件匹配的所有结果(2/3),最后是任何 1 个条件匹配的结果(1/3)。
这 3 个结果集中的每一个都需要按 排序(col4, col5, col6)。
我可以在单个查询中做到这一点吗?
例如:
示例 http://img708.imageshack.us/img708/1646/sampletableresult1.jpg
创建测试数据的脚本:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MyTable]') AND type in (N'U'))
DROP TABLE [dbo].[MyTable]
GO
CREATE TABLE dbo.MyTable
(
col1 INT
, col2 INT
, col3 INT
, col4 INT
, col5 INT
, …Run Code Online (Sandbox Code Playgroud) 我有一个可以从使用数据库中受益的项目,但我没有使用数据库的经验,无法访问服务器,并且在服务器端处理事物的经验相对较少。
如果我必须解决学习曲线问题,我更愿意学习具有广泛适用性的东西(例如 SQL),但如果它对我目前正在尝试的任务足够强大,我会选择学习诸如 Access 之类的东西处理。当然,如果可以提供帮助,我也不想在 Access 上花费 150 美元,因为我只是在修修补补。
我已经下载了 LibreOffice Base 以及名为 SQLiteBrowser 的东西,但是在我投入时间学习这些特定应用程序及其 SQL 风格之前,我想先检查一下这些工具是否足以满足我的需求。
我希望能够:
再说一次,我愿意学习,但在我可以专注于学习数据库以及(如有必要)给定应用程序的细节之前,不必学习一堆关于 IT 的中级知识会很好。
我是一个 100% 自学的 MS Access 程序员(我工作的主要部分是编程),我现在正在构建更大的数据库;仍然使用 MS Access 作为 UI,但使用 SQL Server 来存储所有数据并完成更多“工作”。
本质上我的问题是;对于 SQL Server,我需要了解哪些在使用 Access 时我可能没有学习或不需要的主题?
不是找你告诉我怎么做,更多的是你认为最重要的事情我应该去研究——有很多科目和很多细节,不想找自己长沿着一条不那么有价值的道路走下去......
脑残粉:
如果它有助于我为一家中型零售商工作,而我主要工作的数据库涵盖以下内容:
我支持非营利组织的 Access 数据库。我们有一些关于数据神秘变化的问题,并且有一些,嗯,友好的辩论,关于这是否是由不是最懂计算机的用户引起的,还是由我的一些后台处理引起的。
我已经在 UI 级别为这些条件添加了一些检查,但我想在数据库表级别进行一些检查,以便在某些字段更改时进行记录。通过这种方式,我将了解更改是由用户发起还是仅来自在后台运行的更新查询。通常我会使用on update触发器,但据我所知 Access 不支持触发器。Access 中是否还有其他日志记录或类似触发器的功能?
大约每周一次,我必须解决 SQL Server 2005 数据库上的阻塞链,这是由 Access 2003 前端的长期读取锁引起的。每当用户打开某个表单时就会解除锁定,并在用户完成滚动表单或关闭表单后解除锁定。由于我们的许多用户打开此表单作为参考,因此这些锁会保留一段时间。对该表的任何更新都会导致阻塞,突然间没有人可以从该表中进行选择,因为他们都在等待第一个锁。这对我们来说是一个很大的问题,因为许多应用程序都依赖于这些数据。我知道这种锁定行为是 Access 如何处理链接表的一部分。
我一直在通过 Activity Monitor 解决这个问题,只要我发现它,就会杀死任何一个是 Head Blocker 的 SELECT 进程。这是一个问题,不仅因为我手动完成它需要时间,还因为它是被动的。当我听说它时,它已经成为很多人的问题。
我想知道是否有一种自动方法来检查这些持久的阻塞链,并通过电子邮件发送或自动解决问题。逻辑看起来很简单(“如果任何与此 SELECT 查询匹配的进程阻塞了超过一分钟,请通知我/杀死它”)但我不知道如何使用 SQL Server 实现这一点。
对于它的价值,我认为正确的解决方案是修复或重写应用程序。然而,由于部门政治,这不是未来几个月的选择,所以我正在寻找一个权宜之计。
我开始了一个处理大量相关数据的新角色。我们所有这些数据的来源是从我们无法访问的数据库中提取的各种 Excel 转储。之前担任此角色的人员使用了十几个 Excel 文件来收集这些数据文件、处理它们并创建报告。
我已经开始将转储移动到 Access 数据库。我注意到很多 Excel 数据是相关的,可能应该被标准化。我目前所做的是为每个数据转储创建一个表,并将它们导入 Access,并使用大量查询来复制数十种数据操作和报告。
在我的唯一来源是从仓库中转储的 Excel 数据的情况下,规范化数据是否仍然有好处?
当我无法更改转储发送给我的格式时,我将如何规范化数据?
此外,我的计划(取决于预算)是从 Access 转移到 MS SQL 数据库。
我正在使用 MS Access 2013 中的食品采购/发票系统,并尝试创建一个 SQL 查询,该查询将返回每个单独食品的最新购买价格。
我对 SQL 的理解是非常基本的,我尝试了以下(不正确的)查询,希望它只返回每个项目的一条记录(因为DISTINCT运算符)并且它只会返回最近购买的(因为我做了ORDER BY [Invoice Date] DESC)
SELECT DISTINCT ([Food items].Item),
[Food items].Item, [Food purchase data].[Price per unit], [Food purchase data].[Purchase unit], Invoices.[Invoice Date]
FROM Invoices
INNER JOIN ([Food items]
INNER JOIN [Food purchase data]
ON [Food items].ID = [Food purchase data].[Food item ID])
ON Invoices.ID = [Food purchase data].[Invoice ID]
ORDER BY Invoices.[Invoice Date] DESC;
Run Code Online (Sandbox Code Playgroud)
然而,上面的查询只是返回所有的食品购买(即 中每个记录的多条记录[Food items]),结果按日期降序排序。有人可以向我解释我对DISTINCT运营商的误解吗?也就是说,为什么它不只为 中的每个项目返回一条记录[Food items]?
更重要的是 …