|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Добрый день. Ломаю голову второй день, помогите решить задачу. Есть таблица ; ----------------------- A | B | C | ------------------------ a1 b1 0 a2 b2 0 a3 b3 0 a4 b4 0 .. .. .. Задача, если следующее значение записи совпадает по столбцам, то значение столбца С равно 100 иначе 0 ----------------------- A | B | C | ------------------------ a1 b1 0 a2 b2 100 a2 b2 0 a4 b4 0 .. .. .. Сначала думал сделать два запроса 1. Полный запрос с присвоением значения колонки С = 0, второй с группировкой с присвоением значения колонки С=100. И объединить результаты запросов с последующей повторной группировкой. Помогите дельным советом или решением. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 20:44 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Павел Родионовследующее значениеСледующее в каком порядке? Версия MySQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 22:53 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
miksoft, Добрый вечер, с учетом Order By по двум полям, порядок последовательный. Если я правильно понимаю версия Apache/2.2.29 (Unix) PHP/5.3.29. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 23:03 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Павел Родионов, Версия клиента базы данных: libmysql - 5.5.30 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 23:04 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Павел Родионов, Еще не большое уточнение: ----------------------- A | B | C | ------------------------ a1 b1 0 a2 b2 100 a2 b2 0 a2 b2 0 a2 b2 0 a2 b2 0 a4 b4 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 23:09 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Павел Родионов, небольшое* ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 23:11 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Подскажите, это реально сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 12:15 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Спасибо, зада решена. Просьба разъясните, пожалуйста, как работает эта конструкция: if(@typex=ta.type_a, -- если "type_a" не изменился @rownum:=@rownum+1, -- то увеличить счетчик @rownum:=1+least(0,@typex:=ta.type_a)) AS rown -- иначе скинуть счетчик на 1 -- и занести новое значение в @typex Я понимаю, что при выполнении условия (@typex=ta.type_a) выполняется при не изменении (@rownum:=@rownum+1), а при изменении "@rownum:=1+least(0,@typex:=ta.type_a)"? Вот этой строки и не понимаю до конца. Если при не изменении все просто, переменной присваивается новое значение. то тут, что-то не понятное. Если заменить строку @rownum:=1+least(0,@typex:=ta.type_a) на @rownum:= "fdfdf", что бы в случае изменения присваивалось строковое значение, то все перестает работать. пробовал и так @rownum:="fdfdf"+least(0,@typex:=ta.type_a) не работает (. Подскажите, как работает эта конструкция. "@rownum:=1+least(0,@typex:=ta.type_a)"? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 15:20 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Разобрался )), а можно как-то по другому реализовать присвоение переменной @typex:= , а не через функцию LEAST (выбор минимального значения) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 08:34 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Павел Родионова можно как-то по другому реализовать присвоение переменной @typex:= , а не через функцию LEAST (выбор минимального значения) ?Зачем? Какая цель? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 08:59 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
В случае @rownum:=1+least(0,@typex:=ta.type_a)) AS rown, функция least, выбирает минимальное значение среди тех, которые указана через запятую в скобках (в данном примере мы ставим 0, и считаем его как минимальное) и присваивает это значение переменной @rownum + 1. Если требуется присвоение не числовых значений или нет возможности утверждать, что минимальное число 0. Например, если значение полей будут отрицательные. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 12:42 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Доброго времени суток! Разбираюсь с переменными, помогите, что я делаю не так? Есть поле direction в котором есть два значения 'IN' и 'OUT' и поле с числовым значение Quantity_actually . Если IN то переменной @a присваиваем значение как есть, если 'OUT', то вычитаем из переменной значение числового поля Quantity_actually. SELECT IF(Composition_request.direction = 'OUT', @a := `Composition_request`.Quantity_actually * -1, @a := `Composition_request`.Quantity_actually ) AS Saleable, Sum(@a), `Product_items`.Name_product FROM `RequestWork`, `Composition_request`, `Product_items` , (Select @a = 0) zz WHERE `RequestWork`.`Task_Request` = `Composition_request`.Task_request And `RequestWork`.`Num_Work_Request` = `Composition_request`.Work_request And `Composition_request`.Id_product = `Product_items`.id And (`Product_items` .id = 31) GROUP BY `Product_items`.Name_product При проверке двумя запросами с условиями 'IN' и 'OUT' и последующим вычитанием одного из другова значения отличаются. Помогите разобраться, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2019, 11:41 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Если не использовать функцию Sum , SELECT IF(Composition_request.direction = 'OUT', @a := @a + `Composition_request`.Quantity_actually * -1, @a := @a + `Composition_request`.Quantity_actually ) AS Saleable, `Product_items`.Name_product FROM `RequestWork`, `Composition_request`, `Product_items` , (Select @a = 0) zz WHERE `RequestWork`.`Task_Request` = `Composition_request`.Task_request And `RequestWork`.`Num_Work_Request` = `Composition_request`.Work_request And `Composition_request`.Id_product = `Product_items`.id And (`Product_items` .id = 31) GROUP BY `Product_items`.Name_product То поле Saleable выводит Null ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2019, 11:59 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Кажется разобрался, забыл set @a := 0; ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2019, 12:15 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Доброго времени суток, сломал голову )). Помогите с запросом. Вот сам запрос: SELECT DATE_FORMAT (`NW_TASK`.`date_end`, '%d.%m.%Y') as Date, `NW_POINTS`.`city`, if(@typex=`NW_POINTS`.`city` and @typexdate=DATE_FORMAT(`NW_TASK`.`date_end`, '%d.%m.%Y'), -- если "type_a" не изменился @rownum:=0, -- то увеличить счетчик @rownum:=1+least(0, @typex:=`NW_POINTS`.`city`, @typexdate:=DATE_FORMAT(`NW_TASK`.`date_end`, '%d.%m.%Y') )) AS rown -- иначе скинуть счетчик на 1 -- и занести новое значение в @typex FROM `NW_TASK`, `NW_POINTS`, (select @rownum:=1, @typex:='_', @typexdate := '_') zz WHERE `NW_POINTS`.`index_point` = `NW_TASK`.`code_point` ORDER BY DATE_FORMAT (`NW_TASK`.`date_end`, '%d.%m.%Y'), `NW_POINTS`.`city` ASC Выводится таблица: Date city rown 14.10.2019 Город А 1 15.10.2019 Город Б 1 15.10.2019 Город В 1 15.10.2019 Город А 1 16.10.2019 Город Г 1 20.10.2019 Город В 1 24.10.2019 Город Д 1 24.10.2019 Город Д 1 24.10.2019 Город А 1 24.10.2019 Город А 1 Должно быть так: Date city rown 14.10.2019 Город А 1 15.10.2019 Город Б 1 15.10.2019 Город В 1 15.10.2019 Город А 1 16.10.2019 Город Г 1 20.10.2019 Город В 1 24.10.2019 Город Д 1 24.10.2019 Город Д 0 24.10.2019 Город А 1 24.10.2019 Город А 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2019, 01:25 |
|
Помогите составить запрос SQL
|
|||
---|---|---|---|
#18+
Подскажите в каком направлении двигаться? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2019, 00:05 |
|
|
start [/forum/topic.php?fid=47&msg=39797608&tid=1828884]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 302ms |
total: | 449ms |
0 / 0 |