我有2个查询。一个包括一个子查询,另一个是一个非常基本的查询。我不知道如何组合它们以返回名称,工作日期,未激活分钟数和工作时间的表。
下面是我尝试过的代码。简单的查询是第1,2行,最后5行。我还添加了一个join子句(p.servrepID = l.repid上的joinpunchclock p)。
这两个查询都是独立运行的,因此这仅仅是合并它们的问题。
select
sr.sr_name as liaison, cast(date_created as date) workdate,
(count(date_created) * 4) as minutes_inactive,
(select
sr_name, cast(punchintime as date) as workdate,
round(sum(cast(datediff(minute,punchintime, punchouttime) as real) / 60), 2) as hoursworked,
count(*) as punches
from
(select
sr_name, punchintime = punchdatetime,
punchouttime = isnull((select top 1 pc2.punchdatetime
from punchclock pc2
where pc2.punchdatetime > pc.punchdatetime
and pc.servrepid = pc2.servrepid
and pc2.inout = 0
order by pc2.punchdatetime), getdate())
from
punchclock pc
join
servicereps sr on pc.servrepid = sr.servrepid
where
punchyear >= 2017 and pc.inout = 1
group by
sr_name, cast(punchintime as date)))
from
tbl_liga_popup_log l
join
servicereps sr on sr.servrepID = l.repid
join
punchclock p on p.servrepID = l.repid collate latin1_general_bin
group by
cast(l.date_created as date), sr.sr_name
我收到此错误:
第15级州立19行第102条消息
')'附近的语法不正确
我一直收到此错误,但是如果我调整该部分,还会有更多错误。
答案 0 :(得分:0)
我不知道我们会在这里修复所有问题,但是您的查询存在一些问题。
这是一个粗略的例子:
select
<some stuff>
from
(select col1 from table1) t1
inner join t2
on t1.col1 = t2.col2
答案 1 :(得分:0)
此处最大的错误是您将查询放在async function processLineByLine() {
const rl = readline.createInterface({
input: fs.createReadStream('C:/Users/T440/Documents/crawl/links.txt'),
crlfDelay: Infinity
});
for await (const line of rl) {
if (line.startsWith('https://www.example.com')) {
var encodeLink = encodeURI(line);
const response = await axios.get(encodeLink).catch((err)=>{
节中(在select
之前)。仅当查询返回单个值时,您才能执行此操作。否则,您必须将查询放在from
部分的括号中(已完成此操作),为它提供一个别名,然后进行相应的连接。
您似乎也正在使用from
,这些在任何地方都不需要。我看不到group by
之类的聚合函数。
我最好的选择是您正在寻找以下查询:
sum()