小编Dhr*_*ena的帖子

选择特定时间段内的所有可用项目

所以我有2张桌子照顾和客户,就像这样

client {
  id,
  name
}

caring {
  id,
  startDate,
  endDate,
  clientId
}
Run Code Online (Sandbox Code Playgroud)

我需要让所有在两个提供的日期之间至少有一天可用的客户,您可以看到我的屏幕截图作为参考.

截图

截图我有两个客户端,我需要返回它们.如您所见,第一个客户在提供期间(16.5.-29.5.)之间有三个免费日(21.5.-23.5.),而第二个客户没有任何关怀期.

到目前为止,我尝试过这样的事情

SELECT * FROM client cl
WHERE cl.id NOT IN (SELECT clientId FROM caring 
WHERE endDate >= CURDATE() AND endDate <= DATE_ADD(CURDATE(), INTERVAL 14 DAY))
Run Code Online (Sandbox Code Playgroud)

这个只返回没有照顾的客户.这部分是我需要的,因为此查询不包括我的屏幕截图中的第一个客户端.然后我尝试了下面的查询.

SELECT ca.startDate, ca.endDate, cl.firstName, cl.lastName
FROM caring ca
LEFT JOIN client cl on cl.id = ca.clientId
WHERE ca.startDate NOT IN (
    SELECT endDate
    FROM caring 
) AND ca.startDate <= '2017-05-29' AND ca.endDate >= '2017-05-16'
Run Code Online (Sandbox Code Playgroud)

但我没有得到理想的结果.

任何想法我怎么能实现这一点,提前thx!

mysql sql

5
推荐指数
1
解决办法
95
查看次数

在COBOL中使用COMP的变量

我试图了解具有COMP Usage子句的COBOL变量如何存储值.

我尝试了一个例子,如下所示

    01  VAR14          PIC S9(5) USAGE COMP.   

    MOVE 12345 TO VAR14
    DISPLAY VAR14
Run Code Online (Sandbox Code Playgroud)

在SPOOL中,价值VAR14即将到来0000012345. S9(5) COMP根据手册大小是4个字节,所以我的理解VAR14应该显示为000012345.二进制表示如下:

0000 0000 0000 0000 0011 0000 0011 0100?
Run Code Online (Sandbox Code Playgroud)

有人可以帮助理解产值0000012345吗?

谢谢

cobol mainframe

1
推荐指数
1
解决办法
4860
查看次数

标签 统计

cobol ×1

mainframe ×1

mysql ×1

sql ×1