Я следующий запросSQL Server 2008, как я могу сделать подзапрос этого запроса
select
coalesce(NULLIF(No_Parte,' '), NULLIF(OEM,' '), Num_serie) as Producto,
Id_Sucursal, Tipo_Movimiento, Cantidad, Costo,No_Servicio,
F_Entrada, F_Salida, Observaciones,
(case
when F_Entrada > F_Salida
then F_Entrada
else F_Salida
end) as Fecha
from
Kardex_Producto
where
Id_Sucursal = 'tehuacan'
and ((F_Entrada >= CONVERT(DateTime, '20161031', 103) OR F_Salida >= CONVERT(DateTime, '20161031', 103))
and (F_Entrada <= CONVERT(DateTime, '20161031', 103) OR F_Salida <= CONVERT(DateTime, '20161031', 103))) --and Tipo_Movimiento='S-'
order by
Tipo_Movimiento, No_Servicio
Но по какой-то причине он не работает, как ожидалось, по какой-то причине, она возвращается
+------------+-------------+-----------------+----------+---------+------------------+-------------------------+-------------------------+---------------------------------------------------+-------------------------+
| Producto | Id_Sucursal | Tipo_Movimiento | Cantidad | Costo | No_Servicio | F_Entrada | F_Salida | Observaciones | Fecha |
+------------+-------------+-----------------+----------+---------+------------------+-------------------------+-------------------------+---------------------------------------------------+-------------------------+
| 1TU3CWH | TEHUACAN | E+ | 1.00 | 0 | Traspaso No. 568 | 2016-11-11 19:19:43.447 | 1900-01-01 00:00:00.000 | | 2016-11-11 19:19:43.447 |
| 23651 | TEHUACAN | E+ | 1.00 | 0 | Traspaso No. 569 | 2016-11-14 12:29:21.663 | 1900-01-01 00:00:00.000 | | 2016-11-14 12:29:21.663 |
| 37035 | TEHUACAN | E+ | 2.00 | 0 | Traspaso No. 569 | 2016-11-14 12:29:20.657 | 1900-01-01 00:00:00.000 | | 2016-11-14 12:29:20.657 |
| 39657 | TEHUACAN | E+ | 2.00 | 0 | Traspaso No. 569 | 2016-11-14 12:29:19.403 | 1900-01-01 00:00:00.000 | | 2016-11-14 12:29:19.403 |
| 37069 | TEHUACAN | E+ | 6.00 | 0 | Traspaso No. 571 | 2016-11-17 15:29:30.147 | 1900-01-01 00:00:00.000 | | 2016-11-17 15:29:30.147 |
| 37282 | TEHUACAN | E+ | 1.00 | 0 | Traspaso No. 571 | 2016-11-17 15:29:29.503 | 1900-01-01 00:00:00.000 | | 2016-11-17 15:29:29.503 |
| 37069 | TEHUACAN | S- | 1.00 | 0 | 0000000002368 | 1900-01-01 00:00:00.000 | 2016-10-31 18:07:05.880 | Venta de Mostrador con numero de ticket indicado. | 2016-10-31 18:07:05.880 |
| 44259 | TEHUACAN | S- | 1.00 | 0 | 0000000002369 | 1900-01-01 00:00:00.000 | 2016-11-03 15:59:39.307 | Venta de Mostrador con numero de ticket indicado. | 2016-11-03 15:59:39.307 |
| 37069 | TEHUACAN | S- | 1.00 | 0 | 0000000002370 | 1900-01-01 00:00:00.000 | 2016-11-04 11:07:04.713 | Venta de Mostrador con numero de ticket indicado. | 2016-11-04 11:07:04.713 |
| 39510 | TEHUACAN | S- | 1.00 | 0 | 0000000002370 | 1900-01-01 00:00:00.000 | 2016-11-04 11:07:05.553 | Venta de Mostrador con numero de ticket indicado. | 2016-11-04 11:07:05.553 |
| 302H493011 | TEHUACAN | S- | 1.00 | 0 | 0000000002371 | 1900-01-01 00:00:00.000 | 2016-11-04 20:07:17.730 | Venta de Mostrador con numero de ticket indicado. | 2016-11-04 20:07:17.730 |
+------------+-------------+-----------------+----------+---------+------------------+-------------------------+-------------------------+---------------------------------------------------+-------------------------+
, но это действительно должно быть возвращение 1 ряд
| 37069 | TEHUACAN | S- | 1.00 | 180.00 | 0000000002368 | 1900-01-01 00:00:00.000 | 2016-10-31 18:07:05.880 | Venta de Mostrador con numero de ticket indicado. | 2016-10-31 18:07:05.880 |
Моя думаю, это потому, что обе колонки (F_entrada и F_Salida), так что де чтобы присоединиться к ним в столбце «Fecha» (последний), и теперь я хочу отфильтровать данные по столбцу «Fecha», но я не знаю, как это сделать.
Благодарим за помощь.
'выбрать * из (myquery) T' является основным способом положить что-то в подзапрос (хотя нужно Youd вынуть' заказ by' части). Из интереса, есть ли какая-то особая причина, почему ваши предложения выглядят так? Вам не нужно преобразовывать '20161031' в datetime ... – ZLK
Мне ваш запрос возвращает ожидаемый результат. Каковы ваши критерии поиска? Чего вы хотите достичь? – ydoow
Спасибо за ваш быстрый ответ! Когда я начал улучшать эту систему, мои запросы не работали, если я использовал («yyyyMMdd»), поэтому мне пришлось конвертировать. Я удалю его и проверю, работает ли он сейчас. Еще раз спасибо за вашу помощь! –