|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
в таблицу заносится результат вычислений. Берется фиксированная цена из таблицы № 1. И в таблицу номер два заносится уже произведение цены на количество. Соответсвенно, если кол-во ноль, то и в таблицу заносится ноль. Плюс там различные скидки и проч, соответсвенно все цены расходятся с базовой. Хочу увидеть усредненную По поводу таблички - Чет про запятые не дочитал. Первые разы с планшета писал - довольно ущербная штуковина. Видимо как то криво всплывающая подсказка вылезла ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2016, 16:36 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Shocker.Pro... Можно использовать проверку на null, можно использовать оператор ??, можно использовать тип decimal? вместо decimal... Мне безумно стыдно, но чет не доводилось до сих пор сталкиваться. Как ими пользоваться то? decimal? dc1; dc1 =db.table[0].expr; Ошибку выдает. Или надо GetValueOrDefault использовать? С двойным ? вообще не пойму decimal? dc1 = null; deciamal dc2 = dc1 ?? db.table[0].expr; ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 14:44 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
mdm114decimal? dc1; dc1 =db.table[0].expr; Ошибку выдает.текст ошибки надо угадать? mdm114С двойным ? вообще не пойму decimal? dc1 = null; deciamal dc2 = dc1 ?? db.table[0].expr;непонятно, что не понятно. ?? позволяет заменить null на корректное значение, к примеру Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 15:18 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Shocker.Promdm114decimal? dc1; dc1 =db.table[0].expr; Ошибку выдает.текст ошибки надо угадать? Дык ругается, что значение для столбца expr равно DBNULL Shocker.Promdm114С двойным ? вообще не пойму decimal? dc1 = null; deciamal dc2 = dc1 ?? db.table[0].expr;непонятно, что не понятно. ?? позволяет заменить null на корректное значение, к примеру Код: c# 1. 2.
Я понял что меняет. Я думал что возможна сразу конструкция, которая вытягивает значение из db.table[0].expr и, в случае если оно DBNULL меняет на 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 17:24 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
mdm114Дык ругается, что значение для столбца expr равно DBNULLну так dbnull и null не совсем одно и то же ) mdm114вытягивает значение из db.table[0].expr и, в случае если оно DBNULL меняет на 0ну так для этого есть тернарный оператор, либо можно сделать свой метод расширения для удобства ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 23:19 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
спасибо, еще почитаю по этому поводу дополнительно и буду пробовать ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 11:21 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Вроде бы на ровном месте произошла еще одна странность Есть три таблицы 1. Описание товара - tbl1 2. Складские остатки - tbl_sklad 3. Продажи - tbl_sale Нужны суммы продаж и складских остатков 1.Складские остатки Код: sql 1. 2. 3. 4. 5.
выводит №уч карточки На складе482 214.16483 344.56493 208.76 тут суммы правильные 2. Сумма продаж Код: sql 1. 2. 3. 4. 5.
№ уч карточки Продажи482 NULL483 30493 18.10 тут тоже все суммы сходятся Далее пытаюсь Код: sql 1. 2. 3. 4. 5. 6. 7.
выводится какая то хрень. Че тут насуммировалось, непонятно.. №уч карточки На складе Продано482 214.16 NULL483 689.12 960.00493 417.52 380.10 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2016, 08:20 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
mdm114выводится какая то хреньЧтобы понять, почему хрень, посмотри результаты запроса без группировки: Код: sql 1. 2. 3. 4. 5. 6.
и сразу станет понятно ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2016, 12:16 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Сообщение 8120, уровень 16, состояние 1, строка 1 Column 'tbl1.id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2016, 13:24 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Так не надо использовать агрегирующие функции, просто посмотри результат запроса без группировки ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2016, 13:34 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Я мож не допонял что-то, но первые два запроса с агрегирующими функциями и без них выдают один и тот же результат. Причем он правильный. Там в продажах у 493-й учетной карточки числятся два значения 9.20 и 8.90. Я уж и ограничения делал WHERE id= 493. Результат одинаковый ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2016, 19:09 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Еще раз. Забей на первый два запроса, они правильные и работают как надо. Ты не не понял, почему в третьем случае (когда ты присоединяешь сразу две таблицы), ты получаешь не те итоговые данные, которые ты ожидаешь. Чтобы понять - почему так, я предлагаю тебе выполнить не суммирующий не группирующий запрос (который я привел). Ты сразу увидишь и поймешь, в чем твоя ошибка. Думаю, что все, кто начинал работать с SQL через этот момент проходили. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2016, 20:22 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Так а что он должен вывести? В первой таблице 10 записей. Во второй две. Выводится хрень полная. Я так понимаю, что придется на два отдельных запроса разбить ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2016, 08:59 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
выводится не хрень полная, а перемножение двух присоединенных таблиц, то есть все возможные их сочетания. Таким образом, данные для суммирования задваиваются, затраиваются и т.п., соответственно, получается неверная сумма. Решение может быть таким: Код: sql 1. 2. 3. 4. 5. 6.
но, как говорилось выше, не всегда стоит увлекаться слишком навороченными подзапросами ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2016, 13:34 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
даа, чет мне такая подвыборка в голову не пришла. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2016, 16:37 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Shocker.Pro, можно еще один вопрос? есть Код: sql 1. 2. 3. 4. 5. 6.
вывод: № st dateOutSumdltnMetrtnTotal54 8.00 2015-12-01 10:29:58.303 1.00 77.3337 77.333754 8.00 2015-12-01 10:29:59.067 1.00 77.3337 77.333754 8.00 2015-12-01 10:29:59.817 1.00 77.3337 77.333754 8.00 2015-12-01 10:30:00.627 1.00 77.3337 77.333754 8.00 2015-12-01 10:30:01.563 1.00 77.3337 77.333754 8.00 2015-12-01 10:30:02.320 1.00 77.3337 77.3337 Группировка по дате отсутствует, так как(насколько я правильно понял) разное время. Это как то можно обойти в запросе? Чтобы как то игнорировалось время, а dateOut воспринималась как ShortDate штоле.. т.е. нужно № st dateOutSumdltnMetrtnTotal54 8.00 2015-12-01 6 77.3337 77.3337*6 Или опять же проблема в изначально неправильном подходе к занесению даты в таблицу? При занесении значение берется из DateTimePicker.Value... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 21:10 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Можно, конечно, группировать и выводить округленную дату, но это плохое решение, так как сортировка/группировка/отбор по выражению исключает использование индексов. Лучше, если время не требуется в базе, не писать его туда. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2016, 08:37 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2016, 08:41 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
спасибо за советы ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2016, 13:05 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
стал пробовать ругается. Type date is not a defined system type. В нете смотрел синтаксис. Вроде такой же как в Вашем примере. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2016, 09:03 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Ошибка MS SQL или .Net ? версия MS SQL какая? У меня работает из MSSQL 2012 Management Studio Код: sql 1. 2. 3. 4.
Если старый MSSQL (тип date в 2008 вроде появился), то надо использовать datediff() или dateadd() (точно не помню). Тогда тип останется datetime ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2016, 09:28 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Вот по-старому Код: sql 1.
Взято тут 15115537 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2016, 09:48 |
|
Помогите с запросом с двумя select
|
|||
---|---|---|---|
#18+
Dima T, Пробовал в Managment Studio. 2008. Попробую попозже в проекте. Не думал, что разница есть.. Спасибо, отпишусь ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2016, 14:07 |
|
|
start [/forum/topic.php?fid=17&msg=39182074&tid=1349420]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
159ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 283ms |
0 / 0 |