我有一张桌子,我希望得到每组的最新条目.这是表格:
DocumentStatusLogs 表
|ID| DocumentID | Status | DateCreated |
| 2| 1 | S1 | 7/29/2011 |
| 3| 1 | S2 | 7/30/2011 |
| 6| 1 | S1 | 8/02/2011 |
| 1| 2 | S1 | 7/28/2011 |
| 4| 2 | S2 | 7/30/2011 |
| 5| 2 | S3 | 8/01/2011 |
| 6| 3 | S1 | 8/02/2011 |
Run Code Online (Sandbox Code Playgroud)
该表将按降序分组DocumentID并按DateCreated降序排序.对于每一个DocumentID,我想获得最新状态.
我的首选输出:
| DocumentID | Status | DateCreated …Run Code Online (Sandbox Code Playgroud) 表格1:
id name desc
-----------------------
1 a abc
2 b def
3 c adf
Run Code Online (Sandbox Code Playgroud)
表2:
id name desc
-----------------------
1 x 123
2 y 345
Run Code Online (Sandbox Code Playgroud)
在oracle SQL中,如何运行可以使用表2更新表1 并使用相同的sql更新查询?所以我得到的最终结果是namedescid
表格1:
id name desc
-----------------------
1 x 123
2 y 345
3 c adf
Run Code Online (Sandbox Code Playgroud)
问题来自更新一个表与来自另一个表的数据,但专门针对oracle SQL.
我的任务是提出翻译以下数据的方法:
date category amount
1/1/2012 ABC 1000.00
2/1/2012 DEF 500.00
2/1/2012 GHI 800.00
2/10/2012 DEF 700.00
3/1/2012 ABC 1100.00
Run Code Online (Sandbox Code Playgroud)
进入以下内容:
date ABC DEF GHI
1/1/2012 1000.00
2/1/2012 500.00
2/1/2012 800.00
2/10/2012 700.00
3/1/2012 1100.00
Run Code Online (Sandbox Code Playgroud)
空白点可以是NULL或空白,也可以是好的,并且类别需要是动态的.另一个可能的警告是,我们将以有限的容量运行查询,这意味着临时表已经出局.我已经尝试过研究并且已经登陆了,PIVOT但是在我真的不理解它之前我从未使用过它,尽管我尽了最大的努力去解决它.谁能指出我正确的方向?
我DateTime使用CAST语法将字段输入到时间.
select CAST([time] as time) as [CSTTime]
Run Code Online (Sandbox Code Playgroud)
约会时间
2015-03-19 00:00:00.000
现在输出:时间
03:05:36.0000000
我只需要HH:MM:SS而不是毫秒或0000
如何过滤或将其转换为精确HH:MM:SS格式.
我有2张桌子 - reservation:
id | some_other_column
----+------------------
1 | value
2 | value
3 | value
Run Code Online (Sandbox Code Playgroud)
第二个表 - reservation_log:
id | reservation_id | change_type
----+----------------+-------------
1 | 1 | create
2 | 2 | create
3 | 3 | create
4 | 1 | cancel
5 | 2 | cancel
Run Code Online (Sandbox Code Playgroud)
我只需选择未取消的预订(在此示例中仅为ID 3).我可以通过一个简单的WHERE change_type = cancel条件轻松选择取消,但我正在努力与NOT取消,因为简单WHERE在这里不起作用.
这是一个示例查询,显示我正在尝试获取名为“sql for every”的书,其 begin_date 为“2018-02-02”,其中 authName 为 null。这个查询完全没问题。它返回类似于下面屏幕截图中的一行。
SELECT
bookName,
begin_date,
authName
FROM bookwh
WHERE bookName = :bname
AND begin_date = :dt
AND authName IS NULL
Run Code Online (Sandbox Code Playgroud)
我的问题是如何将 null 作为绑定变量传递?例如,authName = :a_null 我应该能够传递 null
using System;
using System.Collections.Generic;
using System.IO;
class Program
{
static void Main()
{
// Get all files in Documents
List<string> dirs = FileHelper.GetFilesRecursive("S:\\bob.smith\\");
foreach (string p in dirs)
{
Console.WriteLine(p);
}
// Write count
Console.WriteLine("Count: {0}", dirs.Count);
Console.Read();
}
}
static class FileHelper
{
public static List<string> GetFilesRecursive(string b)
{
// 1.
// Store results in the file results list.
List<string> result = new List<string>();
// 2.
// Store a stack of our directories.
Stack<string> stack = new Stack<string>();
// …Run Code Online (Sandbox Code Playgroud) 最近,我偶然发现了以下问题:给出了一个简单的数据模型,其中包含“ Books”和“ Authors”。每个“书”都有对“作者”的引用。持久性是通过关系数据库实现的。除了添加书籍和作者,还可以删除它们。通常,如果要删除作者,我将执行SQL DELETE操作并删除相应的行。但是,在其他项目中,我没有看到有人打电话DELETE。相反,它们添加某种活动/已删除标志并将相应的行标记为“已删除”。
我的问题是:这是一般的最佳做法吗?有什么优势?我最好的猜测是:
DELETE操作具有更好的性能无论如何,这些只是猜测。有人知道答案吗?
将列拆分成行的最佳方法是什么(如矩阵?)示例表:
Name Hours1 Hours2 Hours3
Jon 32 40 30
Ana 40 0 40
Run Code Online (Sandbox Code Playgroud)
结果(不显示0值):
Name Hours
Jon 32
Jon 40
Jon 30
Ana 40
Ana 40
Run Code Online (Sandbox Code Playgroud)
我能想到这样做的一种方法是使用 Union
SELECT
Name,
Hours1
FROM #HOURSTABLE
WHERE Hours1 <> 0
UNION ALL
SELECT
Name,
Hours2
FROM #HOURSTABLE
WHERE Hours2 <> 0
UNION ALL
SELECT
Name,
Hours3
FROM #HOURSTABLE
WHERE Hours3 <> 0
Run Code Online (Sandbox Code Playgroud)
还有其他建议吗?
量角器失败:元素(...).sendkeys不是函数isPresent方法对同一个输入元素返回true而不是sendkeys
我运行conf.js时出现此错误
量角器版本5.2.2
节点v8.9.4
Selenium构建信息:版本:'3.8.1',修订版:'6e95a6684b'
Chrome版本63.0.3239.132(官方版)(64位)
感谢您提前提供的任何帮助
sql ×8
sql-server ×3
mysql ×2
oracle ×2
t-sql ×2
c# ×1
database ×1
group-by ×1
matrix ×1
pivot ×1
plsql ×1
protractor ×1
sql-update ×1