SQL灵活的查询结果

问题描述 投票:0回答:2

林仍然是一个新事物的SQL方面。我一直在试图苏斯如何给你一个在标准,但它已经决定,如果查询恰好等于1个结果或多个。我有以下的。

我可以做这一切错误的,但想到我会问。

 SELECT employee_name
      , transaction_id
      , department
      , transaction_date
      , transaction_day
   FROM employee_transactions
  WHERE transaction_date 
BETWEEN '2018-08-20 07:14:35.000' 
    AND '2019-02-05 08:29:56.000'
    AND CASE WHEN '$variable' = 'All' 
             THEN inc_day IN (
                 SELECT DISTINCT transaction_day 
                   FROM employee_transactions
           ) ELSE inc_day in ('$variable')
             END

我的意思是在列事务一天都有周一,周二,周三ECT的条目然而一切并不在那里。因此,在表格上,如果之前就选择所有这一切,从天而不是只有一个但是,如果他们从星期一拔然后只显示蒙达拉

php sql tsql
2个回答
1
投票

你应该写你的查询关键词,比如以下。

SELECT employee_name, 
        transaction_id, 
        department, 
        transaction_date, 
        transaction_day

  FROM employee_transactions
  WHERE transaction_date 
  BETWEEN '2018-08-20 07:14:35.000' 
  AND '2019-02-05 08:29:56.000'
  AND ( '$variable' = 'All' OR inc_day = '$variable')

上面的查询将返回所有的记录时,$变量=“ALL”否则就只能匹配记录。

假设被执行查询前“$变量”将得到更换。


0
投票

你可以尝试这样的

if($variable == "All")
{ 
   $query = "SELECT employee_name, transaction_id , department , transaction_date , 
   transaction_day
   WHERE transaction_date BETWEEN '2018-08-20 07:14:35.000' AND '2019-02-05 08:29:56.000'
   GROUP BY transaction_date"
}
else
{
   $query = "SELECT employee_name, transaction_id , department , transaction_date , transaction_day
   FROM employee_transactions
   WHERE transaction_date BETWEEN '2018-08-20 07:14:35.000'  AND '2019-02-05 08:29:56.000'
   AND inc_day in ($variable)"
}
© www.soinside.com 2019 - 2024. All rights reserved.