Hirdetés
- Fejhallgató erősítő és DAC topik
- Bambu Lab 3D nyomtatók
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Azonnali alaplapos kérdések órája
- DUNE médialejátszók topicja
- Projektor topic
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- TCL LCD és LED TV-k
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
Új hozzászólás Aktív témák
-
DS39
nagyúr
jó az irány.
még group by-old a külső select-et névre és telefonszámra, és az id-t MIN()-eld.
ezt mentsd el egy temp táblába, majd a temp táblához join-old be a partner táblát, név és telefonszám alapján + temp.ID <> partner.ID
így meglesz egy rekordban a duplikált partner régi és új id-ja, ezzel már könnyen meg tudod írni az update-t, hogy a kölcsönzés táblában mit mire kell cserélni.
+ én még a partner táblát bővíteném egy oszloppal, hogy törölt / archív, és a régi id-ek megjelölném, így később ki lehet őket szűrni. -
-
DS39
nagyúr
válasz
Fundiego
#3782
üzenetére
szerintem így:
$sql = "
SET @rank=0;
select @rank:=@rank+1 AS rank, s.* FROM
(
SELECT gyumolcs, sum(mennyiseg)
FROM gyumolcs Where ev='2016'
group by gyumolcs
ORDER BY sum(mennyiseg) DESC
) s";
$result = mysqli_query($conn, $sql) or die("Bad Query: $sql");
tehát egy változóba mehet az egész.
+ gyors keresés alapján a második paraméter lehet csak az sql, a harmadik opcionális és nem az.
mysqli_query(connection,query,resultmode);
-
DS39
nagyúr
válasz
Fundiego
#3761
üzenetére
Így meg lehetne oldani:
SELECT
ev,
COUNT(CASE WHEN vegeredmeny='1' AND Karosszeria='Ferrari' then datum ELSE NULL END) első,
COUNT(CASE WHEN vegeredmeny='2' AND Karosszeria='Ferrari' then datum ELSE NULL END) második
FROM futam
GROUP BY eva distinct-et a case elé lehetne írni, de nem tudom most kipróbálni, hogy helyes a szintaktika.
-
DS39
nagyúr
Egy ASP-s weboldallal szeretnék csatlakozni Oracle SQL adatbázishoz.
Ezzel mintával próbálkoztam, de nem sikerült:
OLE DB
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.cursorlocation=adUseClient ' requires use of adovbs.inc; numeric value is 3
DSNTest="Provider=MSDAORA.1;Password=pass;User ID=name;Data Source=data.world"
Conn.open DSNtest
%>Korábban MS SQL-hez volt ez az oldal használva, de most az Oracle-lel kellene összebarátkoztatni.

SQL Developerben tnsnames.ora fájllal csatlakozok az adatbázishoz, a lekérdezések írásához.
-
DS39
nagyúr
válasz
kw3v865
#3404
üzenetére
értem, akkor javítsuk meg az update-es megoldásodat:

(itt ugye csak a subquery-vel volt gond, azt én így orvosolnám)ALTER TRIGGER nepesseg_szum ON OVEZETEK
AFTER INSERT
AS
BEGINDECLARE @TERULET GEOMETRY
DECLARE @ID INTDECLARE @kurzor CURSOR
SET @kurzor = cursor FOR
SELECT SHAPE, OBJECTID FROM INSERTEDOPEN @kurzor
FETCH NEXT FROM @kurzor INTO @TERULET, @IDWHILE @@FETCH_STATUS = 0
BEGINUPDATE OVEZETEK
SET Nepesseg_ossz = (SELECT SUM(n.lakosok) from NEPESSEG_EOV N WHERE N.SHAPE.STWithin(@TERULET)=1)
WHERE OVEZETEK.OBJECTID=@IDFETCH NEXT FROM @kurzor INTO @TERULET, @ID
ENDCLOSE @kurzor
DEALLOCATE @kurzor
END;a kiemelt részt módosítottam, kivettem a belső selectet, ott felesleges, ha a kurzorban van már az id.
-
DS39
nagyúr
válasz
kw3v865
#3399
üzenetére
túlbonyolítod, de itt:
@ID=(SELECT OBJECTID FROM INSERTED)
minek a kurzor, ha itt benne hagyod azt a belső selected ami több sort fog visszahozni.
miért nem csinálod úgy ahogy írtam az elején?

ALTER TRIGGER nepesseg_szum ON OVEZETEK
INSTEAD OF INSERT
AS
BEGIN--és a triggeren belül insertálod
INSERT INTO OVEZETEK (oszlopnevek....)
SELECT oszlop1, oszlop2,
(SELECT SUM (TELEPULES.LAKOSOK) FROM TELEPULES
WHERE TELEPULES.SHAPE.STWithin(I.SHAPE)=1),
oszlop4, oszlop5 ....
FROM INSERTED IEND
--(kb ennyi, csak egészítsd ki a tényleges oszlopnevekkel a selectben, és az insert into sorban)ne after insert után update-elj, hanem eleve ne engedd addig az insertet a táblába míg át nem alakítod úgy az eredményt, ahogy neked megfelelő.
így szerintem nem kapnál eleve ilyen hibaüzenetet, hiszen az inserted táblában soronként egy SHAPE érték lesz, ezért a SUM is csak egy értéket ad vissza.
-
DS39
nagyúr
vagy ha nincs egy konkrét érték amit vizsgálj, akkor az INSERTED selectjében ki cserélhetetd azt az oszlopértéket a belső selected sum-jára.
SELECT oszlop1, oszlop2,
(SELECT SUM (TELEPULES.LAKOSOK) FROM TELEPULES
WHERE TELEPULES.SHAPE.STWithin(I.SHAPE)=1),
oszlop4, oszlop5 ....
FROM INSERTED I(@terulet helyett bekerülendő shape oszlop értékét betéve, már nem kell tudd az objectid-t)
-
DS39
nagyúr
válasz
kw3v865
#3394
üzenetére
Szia!
Ezt úgy lehet megoldani, hogy megnézed mi lenne insertálva:
INSTEAD OF INSERT
AS
BEGININSERT INTO TABLANEV (oszlopnevek....)
SELECT oszlopnevek...
FROM INSERTED IEND
--------
itt a SELECT-en belül használhatsz CASE WHEN-eket, hogy adott oszlop értéke ha ez, akkor legyen helyette amaz. remélem érted
-
DS39
nagyúr
válasz
DrojDtroll
#3370
üzenetére
csodálom hogy egyik is jó.
like-nál szerintem %-ot kellen használni, a másiknál meg lemaradt egy ilyen " -
DS39
nagyúr
Köszi, mindkettőtöknek, próbálkozom ezekkel.

-
DS39
nagyúr
sziasztok!
nekem egy olyan segítség kellene, hogy hogyan lehet dinamikusan oszlopokat létrehozni egy select-ben?
pl. van egy lista jelenleg
user_id | össz_pontés egy ilyesmi szeretnék csinálni.
user_id | össz_pont | 2017-01-01 | 2017-01-02 | 2017-01-03 | 2017-01-04 | 2017-01-05A dátumok alá, az adott napon szerzett pontok jelennének meg. Ez nyilván nem gond, viszont nem fix dátumok lennének az oszlopok, hanem lenne egy TOL - IG dátum paraméter, ami alapján kellene létrehozni az oszlopokat.
remélem érhetően írtam le, és tudtok segíteni.

-
DS39
nagyúr
válasz
Cathfaern
#3360
üzenetére
hát azért az elég fapad megoldás lenne, és 50x 5-6 oszlop tartalmát módosítani...
ha ez az összeírás egy excelben történt, és nem papíron akkor könnyen megoldható.
ha papíron, akkor is egyszerűbb létrehozni egy kapcsoló táblát ezzel az 50 sorral (régi id, új id), utána lehet rá írni, egy update sql-t a többi adat áttöltésére. -
DS39
nagyúr
Sziasztok!
MS SQL-es kérdésem lenne, van két adatbázis szerver, az egyiket be szeretném csatolni a másik alá, Linked Server-ként.
Tudom, hogy google a barátom, de ezúttal még nem vezetett rá a tökéletes megoldásra.
Tudtok segíteni hogy ezekbe a mezőkbe milyen paramétereket vár?
Van ip címem, szervernevem, csak nem tudom mit hova. -
DS39
nagyúr
válasz
kezdosql
#3264
üzenetére
Nem, egyikotoknek sincs fogalma se rola, mert ti csak abban gondolkodtok, hogy vannak adattablak, amiket csak ossze kell kapcsolni es kesz.
ja, csak ennyiből áll az sql...de igazad van a te feladatot sokkal nehezebb, én tuti nem csinálnám, adminisztratív munka, engem az adatok információ tartalma sosem érdekelt. (az a megrendelőt érdekli, ehhez kell előállítani a megfelelő adatbázis-környezetet)
viszont nem is tudom miért írtál az sql topicba, hiszen a feladathoz maximum excel szükséges.
-
DS39
nagyúr
válasz
FIREBLADE78
#3236
üzenetére
Megnéztem a program leírását:
2.1.2 Rendszerkövetelmények
1) Internet Explorer 6.0 vagy jobb.
2) Windows 2000 vagy Windows XP Professional operációs rendszer.
3) SQL 2000 szerver adatbázis-kezelő program.
4) Bármilyen más szoftver telepítése a rendszer biztonságának megőrzése érdekében nem
ajánlott.Amit írtam korábban, virtuális XP-t használj ehhez a programhoz. Ezt nem csak SQL szinten csinálták meg régi környezetre.
-
DS39
nagyúr
válasz
FIREBLADE78
#3232
üzenetére
Lövésem sincs. Ez az SQL szoftver-fejlesztés fórum (értsd SQL kódok a téma, nem a szerver telepítés), nem rendszergazda topic. Ráadásul nem tudhatjuk milyen programot vettél, proxy kártyás hotel zár, az pontosan mi is?
-
DS39
nagyúr
válasz
FIREBLADE78
#3230
üzenetére
csúcstechnika lehet ha sql 2000 kell hozzá..
szerintem próbáld meg egy virtuális xp-n. -
DS39
nagyúr
válasz
kezdosql
#3224
üzenetére
A, leirnad, hogyan nez ki egy kapcsolotabla es mivel kossem ossze?
a felhasználó id-t összekapcsolod a pozíció id-val.B, ugy erted, hogy logikai adatok legyenek, amiket vegig kell pipalni minden egyes alkalommal?
attól függ milyen sql-ben csinálod, de az adatbázisban ez kinézhet úgy hogy 1 az igaz, 0 a hamis értéke.az általad írt program felületén bármelyik megoldást használod, mondjuk a checkbox-okat pipálgatnia kellene annak, aki kezeli a dolgozók adatait, utána nyilván lekérdezed és nem kell ismét bepipálni mindig, hanem kitöltődik az az érték amelyik igaz rá. (persze meg lehetne oldani listbox-szal is, ahol többet is lehet választani egyszerre, de a lényege ugyanaz)
a kérdéseid alapján kicsit távolinak érzem a szükséges tudást és a bevállalt/rád kiosztott feladatot.

-
DS39
nagyúr
válasz
kezdosql
#3222
üzenetére
hát ezt kétféleképp is meg lehet oldani. egyik sem bonyolult.
A) két tábla, felhasználók és pozíciók, és csinálsz egy kapcsolótáblát amiben összekötöd, őket, ebben a táblában értelemszerűen lehetne többször ugyanaz a személy, más-más pozícióban.
B) megoldás: felhasználók táblát kibővíted plusz oszlopokkal, amik a pozíciók nevei, és vagy igaz vagy nem az adott emberre az a tulajdonság.
az amit jelenleg csináltál nem igazán járható út, főleg mivel felületet is kell hogy csinálj mindehhez, ahol nyilván látni szeretnék majd az összes ember adatait, amit ha 8 táblában vannak szétszórva, eléggé macerás lesz majd lekérdezést írni, meg adatokat módosítani a felületről.
-
DS39
nagyúr
válasz
MineFox54
#3185
üzenetére
Szia!
select tk.raktszam, tk.cim, tk.szerzo, tk.tantargy, tk.ar, cs.megjegyzes, cs.osztaly
from tankonyv tk
join csoportok cs on cs.raktszam = tk.raktszam
where cs.osztaly = '$osztaly'off: tök jó, ez az új programkód formázó, tudom nem mostani újítás, de ez tényleg hasznos fejlesztés volt. Köszi PH! csapat

-
DS39
nagyúr
válasz
Thrawnad
#3115
üzenetére
Szia!
Én így csinálnám:
select top 3 *
from tablanev
where (..egyéb feltételek..)
order by datum descközben eszembe jutott mysql-ben nincs top 3, akkor limit 3 a végére, ahogy a kolléga írta.
lényege az lett volna, hogy felesleges a belső select, ha a legutolsó (vagy a 3 utolsó) bejelentkezés adatait szeretnéd lekérni. -
DS39
nagyúr
válasz
martonx
#3079
üzenetére
köszönöm a válaszodat, bár igazából ezzel most nem tudom mit kezdjek, ebben egy szó sincs xml feldolgozásról.
van egy lekérdezés egy táblából ahol az xml nevű oszlop értéke az alábbi xml részlet.
ebből értéket úgy szedek ki, hogy:
select xml.value('(/data/answer[@id="3"])[1]', 'varchar(max)') from table_name
de ez így fixen mindig minden sor esetében a 3-as id-s választ hozza le, nekem pedig az kellene, hogy a 3-as helyére dinamikusan tudjak egy számot bevinni.
mert ha ezt a kódot csak felbontom úgy, hogy :
xml.value('(/data/answer[@id="'+'3'+'"])[1]', 'varchar(max)')akkor ezt az választ kapom az sql szervertől:
The argument 1 of the XML data type method "value" must be a string literal. -
DS39
nagyúr
xml-ből szeretnék értéket lekérdezni sql-lel.
<data>
<answer id="1">Válasz1</answer>
<answer id="2">Válasz2</answer>
<answer id="3">Válasz3</answer>
<answer id="4">Válasz4</answer>
</data>úgy szedném ki a választ, hogy:
xml.value('(/data/answer[@id="3"])[1]', 'varchar(max)')
ez mind tök jó, de hogy lehet ezt dinamizálni?
tehát hogy egy másik helyről lekérdezem, hogy xy melyiket választotta, annak az értéke 2, és ezt a 2-est, hogy illesztem be fenti value függvénybe? mert string összefűzéssel nem engedivagy esetleg lehet valahogy hivatkozni arra egy where feltételben, hogy az @id mivel egyenlő?
-
DS39
nagyúr
válasz
DavidPetson
#3067
üzenetére
a lekérdezés egy hibát dob, de azt így php-n keresztül nem látod, futtasd le a kívánt lekérdezést a mysql-ben, és meglátod mi a gond, miért ad vissza boolean-t, a várt adatok helyett.
egyébként a username egy szöveges változó, és te a php bemenő paramétert csak így simán betolod neki. viszont az sql-ben ezt aposztrófok közé kéne tenni, akkor lesz sikeres a lekérdezés.
tehát nem username = kismarcsi mert most ezt kapja a mysql-ed, hanem username = 'kismarcsi'
-
DS39
nagyúr
válasz
DavidPetson
#3065
üzenetére
hát ha nem adsz meg az SQL-nek, egy WHERE feltételt, honnan kéne tudnia, hogy te kinek a nevére vagy kíváncsi?

egy user_id-t át kellene adjál, amit amúgy a bejelentkezési session-ben el kellene tároljál, hogy tudd ki van épp bejelentkezve.
-
DS39
nagyúr
válasz
sztanozs
#3052
üzenetére
Szerintem túl gondolkodjátok az eredeti kérdésemet

Egyik adattáblából kinyert adatot, felhasználok egy másik adattáblából történő lekérdezéshez.az egyetlen bemenő paramétert az SSMS-ben írom bele a scriptbe futtatás előtt.
nem egy állandóan futó valamiről van szó, hogy kellene hozzá program. -
DS39
nagyúr
válasz
sztanozs
#3043
üzenetére
nem tárolt eljárás, csak egy lekérdezés.
de az alábbi megoldás végül is tökéletes nekem.
az amit írsz nem jó (vagy én értem félre)
ha az alábbi kódrészlethez hozzáteszem ezt:
declare @j int = @i - 1és beteszem egy plusz oszlopba a @j-t ,akkor annak minden sorban fix marad az értéke, nem végzi el megjelenített soronként a műveletet.
-
DS39
nagyúr
válasz
Petya25
#3041
üzenetére
Először próbálkoztam ezzel, de akkor a belső select-ben az id-ből próbáltam levonni, ahelyett hogy kívül tenném ezt. Pedig így működik.

és már a belső select-et is kiküszöböltem:
declare @i int = (select id from ...)
select oszlop1, oszlop2, @i - ROW_NUMBER() over(order by oszlop1)
from ...Köszönöm a segítséget.

-
DS39
nagyúr
MS SQL környezetben szeretnék egy olyan lekérdezést csinálni, ahol a select-ben van egy dinamikus változó.
select oszlop1, oszlop2, (select id from ..) - 1
from ...A belső select mindig egy adott id-t, számértéket ad vissza, és az 1 helyett szeretnék egy @i változót soronként növelni, de nem sikerül megoldani.
@i++ nem működik
@i = @i + 1 sem jó.van rá megoldás?
-
DS39
nagyúr
válasz
sityupityka
#2798
üzenetére
engem érdekelne milyen számokat fognak kihúzni szombaton (5-ös lottó)

-
DS39
nagyúr
üdv!
szeretnék egy olyan lekérdezést írni, amivel olyan listát kapok, mint itt PH-n a topikok listája, tehát hogy a bennük található utolsó hozzászólás dátuma szerint legyen rendezve.
ebből indultam ki:
SELECT t.id, t.topic_name, p.send_date
FROM topics AS t, posts AS p
WHERE t.id=p.topic_id
ORDER BY p.send_date DESC
LIMIT 0, 10ez így okés, viszont értelemszerűen minden topik többször szerepel, mert egy azon topikban lehet több friss hsz ugye. ennek kiküszöbölésére két dolgot próbáltam:
1: SELECT DISTINCT t.id, ...
2: ... GROUP BY t.id ...
a többi kódrészlet maradt.
az eredmény az lett hogy most már valóban csak egyszer szerepel minden topik a listában, viszont nem az eredeti lekérdezés szerinti sorrendben, hiába a DESC, minden topic ID-hoz fogta és első első találatot lehozza (ami a legelső hsz), majd ezeket rendezi csökkenőben.
gondoltam hogy belső select-ezni kellene esetleg, de nem jöttem rá a megoldásra. tudnátok ebben segíteni? köszi előre is.

-
DS39
nagyúr
válasz
bbTamas77
#1863
üzenetére
dehogy nincs, Transact-SQL-ben a DATEDIFF fgv. ilyen. de az egy adott formátumban adja meg pl nap, vagy perc. teljes dátumba megadni nincs értelme, mert a hónapok nem azonos hosszúak, az évek sem.
hogy értsd: pl megadsz két dátumot, kijönne hogy különbség egy év, két hónap, 10 nap ... az a két hónap most hány nap is? tehát nem kapnál pontos értéket.
-
DS39
nagyúr
válasz
martonx
#1849
üzenetére
teljesen felesleges újra feltalálni a spanyol viaszt. az SQL Server Business Intelligence része egy igen professzionális riportoló eszközt (Reporting Services) tartalmaz.
remek dinamikus (paraméter szerinti) táblázatok, és diagramok készíthetők vele [link]
az email-ben kiküldés kicsit macerás, de ahogy alább linkeltem megoldható.
-
DS39
nagyúr
válasz
dellfanboy
#1795
üzenetére
ez hogy SQL kérdés?
milyen programban kell a jogosultság egy táblához? MS SQL Server, Oracle DB?
ha nem adtak jogosultságot, akkor nem is kell az adott táblával dolgozzál, nem?
Új hozzászólás Aktív témák
- Spórolós topik
- Sütés, főzés és konyhai praktikák
- Fejhallgató erősítő és DAC topik
- Formula-1
- Bambu Lab 3D nyomtatók
- Cyberpunk 2077
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Samsung Galaxy A56 - megbízható középszerűség
- WoW avagy World of Warcraft -=MMORPG=-
- Hálózati / IP kamera
- További aktív témák...
- Lenovo ThinkPad P16V Gen2. Munkaállomás Intel Core Ultra 7-165H/32RAM/1TBSSD/RTX2000Ada 3év gar
- FELÚJÍTOTT Refubished Lenovo Thinkpad T14s G2 Üzleti Golyóálló Laptop -50% Ryzen 5 PRO 5 16/512 FHD
- 2x32gb szerver ram bontatlanok .
- Lenovo ThinkBook 14s Yoga 2-in-1 üzleti laptop tollal i7-1165G7 16gb ram 512ssd FHD IPS Gari
- Nothing Phone 1 (8GB/128GB, dual sim, független) + Nothing tok + Nothing bontatlan fólia
- BESZÁMÍTÁS! MSI B450M R5 5600X 16GB DDR4 1TB SSD RX 6800 16GB Zalman S2 TG GIGABYTE 750W
- iPhone 15 Pro Max 256GB Blue Titanium -1 ÉV GARANCIA -Kártyafüggetlen, MS4242, 100% Akksi
- HIBÁTLAN iPhone 14 Pro 256GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3919
- Keresünk iPhone 14/14 Plus/14 Pro/14 Pro Max
- Sony PS3/PS4/PS5 és kézikonzolok Okosítása és Szoftveres szintű javítása - RÉSZLETEK A LEÍRÁSBAN
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest









