» »

T-SQL preprost querry pa ne znam

T-SQL preprost querry pa ne znam

nurmaln ::

Živjo

Zanima me kako bi napisal SELECT izjavo ki bi mi vrnila '1' in '2' v enem stolpcu

Če napišem
SELECT 1,2

dobim
|---|---|
| 1 | 2 |
|---|---|


rad pa bi dobil

|---|
| 1 |
|---|
| 2 |
|---|


sej mi je jasno da mora bit čist simpl sam če ne vem pač ne vem
  • spremenilo: nurmaln ()

Sergio ::

SELECT 1

UNION

SELECT 2
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.

nurmaln ::

sergio car

tnx

Sergio ::

/me se prikloni. :)
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.

Sergio ::

Edino to bi te še opozoril:

SELECT 1

UNION

SELECT 1

ti vrne samo eno vrstico. Ker stvar vrne množico različnih relacij.
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.

borchi ::

SELECT 1

UNION ALL

SELECT 1

ti pa vrne obe vrstici.
l'jga

Sergio ::

Vidiš, tega pa jaz nisem vedel ;-).

Vsak dan nekaj novega, hvala.
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.

nurmaln ::

k vidim da obvladate zadeve bi pa še nekej prašu

imam dve tabeli

v prvi je šifra artikla in količina prodaje
v drugi je šifra artikla in količina nabave

rabim novo tabelo, ki bo vključevala vse tri stolpce

kako?

Zgodovina sprememb…

  • spremenilo: nurmaln ()

pyrexia77 ::

create table new_table as
select tab1.sifra_art, tab1.kol_prod, tab2.kol_nab
from table1 tab1, table2 tab2
where tab1.sifra_art = tab2.sifra_art;

nurmaln ::

SELECT

p.opis, p.Šifra, p.prodaja, n.nabava

FROM
(
SELECT 'Monitor 17' AS Opis, '17' AS Šifra, '3' AS prodaja, 0 AS nabava
UNION
SELECT 'Monitor 19' AS Opis, '19' AS Šifra, '7' AS prodaja, 0 AS nabava
) AS p

,

(
SELECT 'Monitor 19' AS Opis, '19' AS Šifra, 0 AS prodaja, '5' AS nabava
) AS n

WHERE p.Šifra = n.Šifra



Od tegale bi jaz pričakoval da mi bo vrnilo dve vrstici.
V prvi 'Monitor 17' s šifro '17', prodajo 3 in nabavo 0
V drugi pa Monitor 19 s šifro 19, prodajo 7 in nabavo 5

Vrne mi samo drugo vrstico. Kako naj dobim obe?


edit.

LEFT JOIN mi ne pride v upoštev ker ne vem v kateri tabeli bo več vrstic.

Zgodovina sprememb…

  • spremenilo: nurmaln ()

zigi ::

Pol pa uporabi full join ;)

nurmaln ::

:8) Nisem vedel da obstaja.:8)

Hvala n'kul puzabu.

sverde21 ::

OK, se bom še jst tle mal vrinu :) , imam tabelo kjer imam banane uporabnike ter zraven čas bana...
iduidban_for_sec
1210
220
3220

In zdej če je polje ban_for_sec 0, to pomeni, da je uporabnik banan za nedoločen čas. Rabil bi query, ki bi mi vrnil največjo vrednost v polju ban_for_sec za nekega uporabnika oziroma, če je vrednost polja ban_for_sec 0, bi moral vrniti 0. Torej v zgornjem primeru bi moralo vrniti 0, če pa nebi bilo drugega vnosa, pa bi moral vrniti 20.
<?php echo `w`; ?>

space ::

MAX uporabi.

SELECT MAX(ban_for_sec) As "BAN"
FROM Tabela;

In ti vrne polje z najvecjo vrednostjo.

lp,
s
Onen i-Estel Edain, u-chebin estel anim.

borchi ::

@sverde: če je uid oznaka za uporabnika lahko narediš takole:

select ban_for_sec from (
select uid, ban_for_sec, ban_for_sec_calc = case when (ban_for_sec = 0) then (select max(ban_for_sec) + 1 from tabela) else (ban_for_sec) end
from tabela) tb1
where uid = 2
group by uid, ban
having max(ban_for_sec_calc) = ban_for_sec + max(ban_for_sec_calc)

sej vem, da je štorasto in grdo ko smrt... sam ura je že pozna pa še spakirat je treba...
l'jga

Zgodovina sprememb…

  • spremenil: borchi ()

borchi ::

tisto zorej je seveda narobe... :\

select min(ban_for_sec) as ban from
(
select id, uid, ban_for_sec
from tabela
where uid = 2
and ban_for_sec = case when (ban_for_sec = 0) then 0 else (select max(ban_for_sec) from tabela) end
) t
l'jga

Zgodovina sprememb…

  • spremenil: borchi ()

sverde21 ::

Mogoče bo celo delal :) sicr pa moram še malce predelat query, ker imam še ene 2 JOIN-a zravn ;)

Hvala!
<?php echo `w`; ?>

Zgodovina sprememb…

  • spremenil: sverde21 ()

borchi ::

> (select max(ban_for_sec) from tabela)

mora bit seveda

(select max(ban_for_sec) from tabela where uid = 2)

zdej pa dost od mene, sem že dokazal kako štorast sem pri sql-u.
l'jga


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

SQL vprasanje (strani: 1 2 )

Oddelek: Programiranje
687898 (4577) BivšiUser2
»

[SQL] Unikatni izpisi

Oddelek: Programiranje
212065 (1452) 111111111111
»

mysql if stavek

Oddelek: Programiranje
91199 (813) MrStein
»

SQL vprašanje

Oddelek: Izdelava spletišč
302555 (2118) jerneju
»

MySQL join problem

Oddelek: Programiranje
101488 (1386) Poldi112

Več podobnih tem