UNION nebo GROUP WITH ROLLUP

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
MW
Člen | 626
+
0
-

Prosim o radu,

pouzivam NETTE\DATABASE a ted potrebuji poslat do gridu data, se SUM sloupce na konci..

Chtel jsem pouzit UNION a nebo ROLLUP, ale ani jedno se me nedari…

Když zkusim třeba toto:

public function getData($year = null) {

	return $this->database->table('vynosyo')->select('*, SUM(cena)')->group('id WITH ROLLUP');
    }

nelze na to volat uz ORDER…

pokud udelam dotaz rucne přes ->query tak na nej taky uz nezavolam ani order ani where ..

Poradte prosim, jak lze toto resit..

Diky!

Editoval MW (14. 10. 2013 15:32)

enumag
Člen | 2118
+
0
-

Zkusil bych AppendIterator.

Editoval enumag (14. 10. 2013 19:28)

MW
Člen | 626
+
0
-

Moc nechapu.. muzu poprosit o konkretnejsi napovedu?

Diky !

enumag
Člen | 2118
+
0
-
  1. Uděláš normální select (bez union, bez rollup). Dostaneš Selection což je kromě jiného Iterátor.
  2. Pak připravíš druhý, třeba ArrayIterator kde bude jediný řádek, ten součtový (hodnotu získáš druhým selectem).
  3. Vytvoříš new AppendIterator a přidáš do něj oba předchozí iterátory.
  4. Tento AppendIterator podstrčíš gridu jako data source.
MW
Člen | 626
+
0
-

Aha.. to uz chápu… diky !
Jen si ted rikam, jak bude vypadat ten druhy select.. asi nemusi mit stejnou strukturu… ne?

Ještě jsem nezkoumal, jak se to chova…

Diky !

enumag
Člen | 2118
+
0
-

Pokud budeš chtít přímo ten druhý select použít jako iterátor tak zřejmě ano (a v tom případě nebudeš potřebovat ten ArrayIterator). Ale způsobů je víc…

MW
Člen | 626
+
0
-

Sice jsem nacetl iterator.. uz jsem chapal, ale veta, ze uz nebudu potrebovat arrayIterator me rozhodila :-)

Moc prosim.. napises me vzor, jak bych to mel pouzit v mem getData? jestli vůbec tam ..

Moc diky !

enumag
Člen | 2118
+
0
-

Myslel jsem to tak že pokud ty dotazy budou vracet stejné sloupce tak ti stačí předat tomu AppendIteratoru oba dva objekty Selection (ten druhý bude mít jen jeden řádek). Na ten ArrayIterator raději zapomeň, jen tě to zbytečně mate.

Přesně ti to nenapíšu, nepoužívám hrachův grid a poslední měsíce už ani Nette\Database.

Editoval enumag (15. 10. 2013 21:54)