SQL сложно Query - Помогнете
6 отговора
1055 прегледа
SQL сложно Query - Помогнете
Имам Таблица с няколко полета:
Id - Primary Key
DetailKod - Integer
Price - real
Paid - real
и няколко-стотин записа. Резлултата от заявката трябва да е всички DetailKod които отговарят на критерия Price<>Paid и сумата (Price) от върнатите записи да е <= от въведен параметър.
примерен резултат
ако всички записи са
Id DetailKod Price Paid
1 345 23.00 23.00
2 344 23.00 0.00
3 300 5.00 2.45
4 343 23.00 0.00
5 333 25.00 0.00
след изпъление на заявката искам сумата от върнатите записи да е <=30.0
резултат
Id DetailKod Price Paid
2 344 23.00 0.00
3 300 5.00 2.45
4 343 23.00 0.00
5 333 25.00 0.00
-------
76.00 <=80.00 което искам
Ако може някой да помогне
след изпъление на заявката искам сумата от върнатите записи да е <=80.0
резултат
Id DetailKod Price Paid
2 344 23.00 0.00
3 300 5.00 2.45
-------
28.00 <=30.00 което искам
Id - Primary Key
DetailKod - Integer
Price - real
Paid - real
и няколко-стотин записа. Резлултата от заявката трябва да е всички DetailKod които отговарят на критерия Price<>Paid и сумата (Price) от върнатите записи да е <= от въведен параметър.
примерен резултат
ако всички записи са
Id DetailKod Price Paid
1 345 23.00 23.00
2 344 23.00 0.00
3 300 5.00 2.45
4 343 23.00 0.00
5 333 25.00 0.00
след изпъление на заявката искам сумата от върнатите записи да е <=30.0
резултат
Id DetailKod Price Paid
2 344 23.00 0.00
3 300 5.00 2.45
4 343 23.00 0.00
5 333 25.00 0.00
-------
76.00 <=80.00 което искам
Ако може някой да помогне
след изпъление на заявката искам сумата от върнатите записи да е <=80.0
резултат
Id DetailKod Price Paid
2 344 23.00 0.00
3 300 5.00 2.45
-------
28.00 <=30.00 което искам
Re: SQL сложно Query - Помогнете
SELECT DetailKod, SUM(price) AS s
FROM tbl
WHERE Price <> Paid
GROUP BY DetailKod
HAVING s <= 12345;
salle.online.bg/sig
FROM tbl
WHERE Price <> Paid
GROUP BY DetailKod
HAVING s <= 12345;
salle.online.bg/sig
Re: SQL сложно Query - Помогнете
за съжаление възприема s като параметър и иска да задам стойност за него.
видях че сам объркал когато пиша кога искам 80 и 30, но мисля че сте разбрали какво питам. Искам от всички зписи които отговарят на условието Price <> Paid да върне първите чиято сума е <= на предварително зададена.
Няма смисъл да изисвам всички записи щом ще покривам сума ще ми стигне да покрия първите няколко записа.
видях че сам объркал когато пиша кога искам 80 и 30, но мисля че сте разбрали какво питам. Искам от всички зписи които отговарят на условието Price <> Paid да върне първите чиято сума е <= на предварително зададена.
Няма смисъл да изисвам всички записи щом ще покривам сума ще ми стигне да покрия първите няколко записа.
Re: SQL сложно Query - Помогнете
SELECT *
FROM
(
SELECT *,
(SELECT SUM(price)
FROM test AS x
WHERE x.IDArt <= test.IDArt
and x.price - x.paid > 0
) AS SumMeAndPrev
FROM test
WHERE price - paid > 0
) AS T
WHERE T.SumMeAndPrev < @suma
Re: SQL сложно Query - Помогнете
Za sujalenie ne wrusta towa koeto iskam, t.e da zadam nqkakwa suma i da wurne purwite zapisi chiqto suma ot pole paid e <= na wuwedenata suma
Re: SQL сложно Query - Помогнете
Виж сега, ако си схванал(а) идеята можеш да го накараш да работи и по полето paid. Мисля че като за без пари даже съм ти показал повече от колкото трябва.
Успех!
Успех!
Re: SQL сложно Query - Помогнете
ОК, Мерси за идеята, Не съм чак толкова навътре с SQL, за това питам тук.
Ако аз знаех на нещо което някой пита щях да му го кажа. все пак мерси
Ако аз знаех на нещо което някой пита щях да му го кажа. все пак мерси