Please bear with me on this, this is quite difficult to explain and I am not sure if I am using the correct terminology.
I need to do a rather complicated select. It is effectively a select statement which conditionally decides what field to use to filter the select. If 开发者_如何学Pythona certain date field is not null, I need to check that the value in that field is within a certain range. Otherwise if that date field is null I need to check another field, int field, on the same table is within a certain range:
Pseudocode:
If [Date] is not null
    Get sum (table.value) for rows Date >= dateValue and Date < dateValue
Else
    Get sum (table.value) for rows Int >= intValue and Int < intValue
My current attempt:
SELECT CASE WHEN a.Date IS NOT NULL THEN 
(SUM(CASE WHEN (a.Date >= cal.Date) THEN ABS(a.Value) ELSE 0 END)) 
ELSE 
(SUM(CASE WHEN (b.Days >= 0) THEN ABS(a.Value) ELSE 0 END) 
END AS 'A'
Any ideas? Ask if you need more information. Thanks in advance.
One way is to have 2 separate queries UNIONed together, but only one clause will produce a value. This avoids having OR statements.
SELECT SUM(Value)
FROM MyTable
WHERE MyTable.Date >= dateValue and Table.Date < dateValue  --NULL Date = false always
UNION ALL
SELECT SUM(Value)
FROM MyTable
WHERE MyTable.Int >= intValue and Table.Int < intValue
    AND --ignore this clause if date is NOT NULL
    MyTable.Date IS NULL
Edit, with OR:
SELECT SUM(Value)
FROM MyTable
WHERE
     (
      MyTable.Date IS NOT NULL AND 
      MyTable.Date >= dateValue and Table.Date < dateValue
      )
      OR --actually mutually exclusive
     (
      MyTable.Date IS NULL AND 
      MyTable.Int >= intValue and Table.Int < intValue 
      )
This works and isn't all that far off from the pseudocode, as long as I'm interpreting what you want to do correctly.
SELECT  SUM(Value)
FROM    T
WHERE
        CASE WHEN DateValue IS NOT NULL 
                THEN DateValue BETWEEN FromDate AND ToDate
                ELSE IntValue BETWEEN FromInt AND ToInt
                END 
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论