-1

我正在尝试编写一个查询来找到最大到期日期,但我注意到的是,当我这样做时,如果我有一个到期日期,比如 2016 年 12 月 30 日,我没有得到任何结果,对于同一部分,我也有一个下面的 2099 年 1 月 1 日到期日期(如果未填写任何内容,则为默认日期)是我的查询,我如何重写 expire_date 查询以获得正确的日期。

SELECT 
 Part,
 price,
 effective_date,
 expiration_date
FROM a.Table 
 WHERE Part IN ('&Part') 
 AND PRICE  IN ('somewere') 
 AND expiration_date IN (SELECT 
                          MAX(expiration_date) 
                          FROM table  
                          WHERE expiration_date > SYSDATE 
                          AND  part IN ('&Part)  
                          AND PRICE IN (Somewere)) 
 AND to_date(effective_date) IN (SELECT 
                                  MAX(EFFECTIVE_DATE) FROM b.table  
                                  WHERE expiration_date > SYSDATE 
                                  AND  Part IN ('&Part)  
                                  AND price  IN (somewere) 
                                  AND EFFECTIVE_DATE < SYSDATE + 1)

PHP将嵌套关联数组转换为cURL的Json对象

在 API 集成中...我需要将 json 数据传递给 CURL。以下是 API 规范的外观

curl -X POST \
     -H "Authorization: Bearer {token}" \
     -H "Content-Type: application/json"  -d '
      {
          "from": "12345",
          "to": [
              "123456789",
          ],
          "body": "Hi there! How are you?"
      }' \
  "https://api.service.com/xms/v1/batches"

这是我的数组

 private $post_data = array('from' => '91875222222',
    'to' => array('918757022222'),
    'body' => 'I am test robot.');

内部函数 callAPI()... 将其转换为 json 格式以将数据传递给 url

$test = json_encode(array($this->post_data), JSON_FORCE_OBJECT);
curl_setopt($curl, CURLOPT_POSTFIELDS, $test);

我正在尝试这种方式...但是...当我尝试打印 $test 数据时,它会输出

{\"from\":\"918757095588\",\"to\":[\"918757095588\"],\"body\":\"我是智能测试机器人。\"}"}

没有成功。不确定缺少什么。我已将标头授权设置为:

$headers = array(
    'Content-Type:application/json',
    'Authorization: Bearer 2cfe3a1d8899019db3512222a9fecb'
    );
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
4

1 回答 1

0

我会使用 ROW_NUMBER。https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions137.htm

这是查询:

SELECT
    part
    ,price
    ,effective_date
    ,expieration_date
FROM (
    SELECT
        part
        ,price
        ,effective_date
        ,expieration_date
        ,ROW_NUMBER() OVER (PARTITION BY part ORDER BY expieration_date DESC) AS "row"
    FROM @tbl
    WHERE effective_date < SYSDATE + 1
    ) tbl
WHERE "row" = 1

这是我用来填充@tbl 的内容。

DECLARE @tbl TABLE (
part NVARCHAR(MAX)
,price FLOAT
,effective_date DATETIME2(3)
,expieration_date DATETIME2(3)
)

INSERT @tbl (part, PRICE, EFFECTIVE_DATE, EXPIERATION_DATE)
VALUES ('Apples',7.95,'2016-12-01','2016-12-30')
    ,('Apples',7.95,'2016-11-01','2016-11-30')
    ,('Apples',7.95,'2016-12-30','2099-01-01')
于 2016-12-02T20:25:44.360 回答