Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Условие Where / 8 сообщений из 8, страница 1 из 1
07.10.2021, 07:26
    #40102513
Ablaykhan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие Where
Здравствуйте, у меня есть вот такой вот запрос:

Код: sql
1.
2.
3.
4.
5.
SELECT 
SUM(PAYEDCUR) AS [Сумма продажи]
, COUNT(CHECKNUMBE) AS [Количество чеков]
FROM [db-1c-03].[POS].[dbo].[CASHPAY]
WHERE CASHNUMBER NOT LIKE '2'



Когда я добавляю еще одно условие

Код: sql
1.
2.
3.
4.
5.
SELECT 
SUM(PAYEDCUR) AS [Сумма продажи]
, COUNT(CHECKNUMBE) AS [Количество чеков]
FROM [db-1c-03].[POS].[dbo].[CASHPAY]
WHERE CASHNUMBER NOT LIKE '2' AND PAYEDCUR NOT LIKE '%-%'



У меня сумма продажи начинает ломаться

Как сделать так чтобы второе условие которое я добавил не влияло на [Сумма продажи].
Подскажите пожалуйста.
Может надо обернуть в subquerie?
Заранее спасибо за ответ
...
Рейтинг: 0 / 0
07.10.2021, 07:37
    #40102516
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие Where
- Товарищи ученые! У меня в подполе происходит подземный стук. Объясните, пожалуйста, от чего он происходит?

Условие меняет выборку => меняется сумма.
Чего ты хочешь, страдалец?
Чуда?
...
Рейтинг: 0 / 0
07.10.2021, 07:52
    #40102518
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие Where
Дурь какая-то. SUM(PAYEDCUR) явно намекает, что поле числовое, а PAYEDCUR NOT LIKE '%-%' столь же явно считает его строковым...
...
Рейтинг: 0 / 0
07.10.2021, 07:55
    #40102520
Ablaykhan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие Where
aleks222,

Я знаю что условие меняет выборку. Мой вопрос, можно ли прописать два условия которые не будут менять выборку друг друга?
Для особо умных, разъясняю.
...
Рейтинг: 0 / 0
07.10.2021, 07:58
    #40102521
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие Where
Ablaykhan
aleks222,

Я знаю что условие меняет выборку. Мой вопрос, можно ли прописать два условия которые не будут менять выборку друг друга?
Для особо умных, разъясняю.

Для сверх-разума, объясняю на пальцах:
1. Один запрос, одно WHERE = одно условие.
2. Надо разные условия - надо писать разные запросы.
...
Рейтинг: 0 / 0
07.10.2021, 08:01
    #40102522
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие Where
Akina
Дурь какая-то. SUM(PAYEDCUR) явно намекает, что поле числовое, а PAYEDCUR NOT LIKE '%-%' столь же явно считает его строковым...

Это ж мелочи. "Искуственный интеллект" схавает. Ну, т.е. приведет типы.
И отрицательные числа будут отфильтрованы.

ЗЫ. Ты бы до такого даже додуматься не смог. Сверхразум на марше.
...
Рейтинг: 0 / 0
07.10.2021, 09:58
    #40102567
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие Where
Ablaykhan
Как сделать так чтобы второе условие которое я добавил не влияло на [Сумма продажи].
Перенесите его внутрь агрегата:
Код: sql
1.
COUNT(case when PayedCur >= 0 then 1 end) AS [Количество чеков]


Ну и конечно да, вам стоит пересмотреть свою методику работы с данными. Реляционные СУБД - это не эксель.

ЗЫ: Надеюсь, поле PayedCur не может содержать NULL. Иначе придется чутка по-другому извращаться.
...
Рейтинг: 0 / 0
07.10.2021, 12:01
    #40102634
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие Where
Ablaykhan,

вам бы для начала надо разобраться - что такое числа, строки, какие бывают типы данных и какими функциями их можно обрабатывать. Заодно понять - что такое предикат и какие в T-SQL бываю предикативные выражения. Т.е. начать с самых азов.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Условие Where / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]